1.安装模块
在一个父级以及父级以上非中文命名的文件夹新建一个文件夹,当做该博客项目目录(如果含有中文安装模块会报错),这里命名为blog文件夹,打开终端cd切换进入该文件夹运行命令:
代码语言:javascript复制npm init
根据提示输入相应的项目名称,项目名称后面的其他选项直接回车默认,最后在blog文件夹下生产一个package.json的文件
{ "name": "node_blog", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC", "description": "", "dependencies": { } }
该项目当前需要的模块有:
代码语言:javascript复制"body-parser": 解析post请求数据
"cookies": 读写cookie
"express": node.js Web应用框架,用于创建Web应用
"markdown": 解析语法生成模板
"mongoose": mongodb数据库操作
"swig": 模板解析引擎
目前用到的就这些,有其他需求后面可以再安装。
在blog文件夹下进入终端,安装这些模块:
代码语言:javascript复制npm install body-parser cookies express markdown mongoose swig
安装完成后会在blog下面生成node_modules文件用于存放这些模块,生成一个package-lock.json文件,同时packag.json文件也得到更新(package.json展示了模块的版本范文,而package-lock.json则说明具体安装的是哪些模块版本)
package.json如下:
代码语言:javascript复制{
"name": "node_blog",
"version": "1.0.0",
"description": "nodejs开发",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"cookies": "^0.7.3",
"express": "^4.17.1",
"markdown": "^0.5.0",
"mongoose": "^5.6.0",
"swig": "^1.4.2"
}
}
2.创建应用目录
db:数据存储目录
models:数据库模型文件目录
public:公共文件目录(js,css等)
routers:路由文件目录
node_modules:NodeJS第三方模块目录
shcemas:数据库结构文件目录
views:模板视图文件目录
app.js:应用启动文件入口
3.启动第一个服务
项目的入口文件为app.js,因此在app.js里面编辑代码创建服务,用到了express模块;
先加载express模块,然后创建app应用,并绑定一个路由用于展示页面,规定监听端口:
代码语言:javascript复制//应用程序的启动入口文件
//加载express模块
var express = require('express');
//创建app应用,相当于nodeJS的http.createService()
var app = express();
/**
* [description] 给app绑定首页路由,把一个url路径通过一个或多个方法绑定
* @param {[type]} req request对象,保存客户端请求相关的一些数据
* @param {[type]} res response对象
* @param {[type]} next 函数,用于执行下一个和当前路径匹配的函数
* @return {[type]} [description]
*/
app.get('/',function(req,res,next){
//res.send(string)发送内容直客户端
res.send('<h1>欢迎来到我的博客!</h1>')
})
//监听http请求
app.listen(8081);
完成之后,在blog文件夹下打开终端,运行app.js,出现光标闪动
打开浏览器,输入localhost:8081:
即可看到效果