目录
1.1安装express
1.2.1 创建项目
(1)使用vscode,可以快速创建项目,vscode把终端聚合在了一起,打开vscode终端
(2)进入工作目录
(3)执行创建命令
(4)此时可以看到它会自动执行
1.2.2 express项目结构分析
1、目录结构中的文件及其作用
1.2.3 应用主文件app.js
在文章里面所有命令都是在vscode的终端执行的
1.1安装express
要安装Express,首先要具备Node.js环境,也就是说你已经安装了Node.js。
安装Express非常简单,我们可以使用Node.js的配套工具npm命令即可安装:
$ npm install -g express-generator
npm命令运行完毕,再运行命令:
$ express --version
如果能够看到Express的版本号,证明Express已经安装成功。本文写完Express最新的版本号是4.16.1。
$ express --version
$ 4.16.1.
我们这里安装的是一个应用生成器工具——express-generator,通过express-generator可以快速创建一个应用的骨架,为快速创建Node.js项目提供便利。
1.2.1 创建项目
使用Express创建项目非常简单,具体步骤如下:
(1)使用vscode,可以快速创建项目,vscode把终端聚合在了一起,打开vscode终端
(2)进入工作目录
可以自定义一个工作目录,如下:
$ e:
$ cd express/code
(3)执行创建命令
创建一个名为hello的Express项目:
$ express hello
(4)此时可以看到它会自动执行
(5)创建成功之后会在code目录下出现一个名叫hello的目录,进入hello目录,然后安装依赖包:
$ cd hello
$ npm install
(6)安装完毕之后,执行命令启动应用:
$ npm start
(7)应用启动后,在浏览器中输入http://localhost:3000/网址就可以看到名叫hello的这个应用了,如图所示。
1.2.2 express项目结构分析
1、目录结构中的文件及其作用
1.2.3 应用主文件app.js
app.js文件相当于项目启动的主入口文件,有一些公共方法和服务器配置等信息。代码分析如下:
var createError = require('http-errors');
// http错误处理模块
var express = require('express');
// 引入Express
var path = require('path');
// 引入path
var cookieParser = require('cookie-parser');
// 引入cookie处理对象
var logger = require('morgan');
// 引入日志模块
var indexRouter = require('./routes/index');
// 引入路由目录中的index.js文件
var usersRouter = require('./routes/users');
// 引入路由目录中的users.js文件
var app = express();
// 创建Express应用
app.set('views', path.join(__dirname, 'views'));
// 定义页面目录
app.set('view engine', 'jade');
// 定义页面模板引擎
app.use(logger('dev'));
// 定义日志打印级别
app.use(express.json());
// 定义JSON格式处理数据
// 定义使用urlencode处理数据及querystring模块解析数据
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
// 定义使用cookie处理对象
// 定义静态资源目录
public app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
// 定义指向index.js的路由
app.use('/users', usersRouter);
// 定义指向users.js的路由
// 定义404错误处理
app.use(function(req, res, next) {
next(createError(404));
});
// 定义其他错误处理
app.use(function(err, req, res, next)
{
// 设置locals,只在开发环境生效
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
res.status(err.status || 500);
// 返回错误http状态码
res.render('error');
// 渲染错误页面
});
module.exports = app;