什么是Express
Express 是最流行的 Node 框架,是许多其它流行 Node 框架 的底层库。它提供了以下机制:
- 为不同 URL 路径中使用不同 HTTP 动词的请求(路由)编写处理程序。
- 集成了“视图”渲染引擎,以便通过将数据插入模板来生成响应。
- 设置常见 web 应用设置,比如用于连接的端口,以及渲染响应模板的位置。
- 在请求处理管道的任何位置添加额外的请求处理“中间件”。
Express生成器
sudo npm install express-generator -g
视图引擎 & Css引擎
Express 应用生成器支持多款流行的视图/模板引擎,包括 EJS、Hbs、Pug (Jade)、Twig 和 Vash,缺省选项是 Jade。Express 本身也支持大量其他模板语言,开箱即用。
Express 应用生成器支持最常见的 CSS 引擎:LESS, SASS, Compass, Stylus。
路由和控制器
路由是一段 Express 代码,它将 HTTP 动词(GET、POST、PUT、DELETE 等)、URL 路径/模式和处理函数三者关联起来。
// wiki.js - 维基路由模块
const express = require('express');
const router = express.Router();
// 主页路由
router.get('/', (req, res) => {
res.send('维基主页');
});
// “关于页面”路由
router.get('/about', (req, res) => {
res.send('关于此维基');
});
module.exports = router;
路由函数
router.get('/about', (req, res) => {
res.send('关于此维基');
});
路由参数
app.get('/users/:userId/books/:bookId', (req, res) => {
// 通过 req.params.userId 访问 userId
// 通过 req.params.bookId 访问 bookId
res.send(req.params);
});
express-validator
执行表单数据的验证和清理
body('name', 'Empty name').isLength({ min: 1 }),
body('age', 'Invalid age').optional({ checkFalsy: true }).isISO8601()
body('name').isLength({ min: 1 }).trim().withMessage('Name empty.')
.isAlpha().withMessage('Name must be alphabet letters.')