Stay hungry Stay foolish

Express小结

Posted on By Will Lee

Express示例

什么是Express

Express 是最流行的 Node 框架,是许多其它流行 Node 框架 的底层库。它提供了以下机制:

  • 为不同 URL 路径中使用不同 HTTP 动词的请求(路由)编写处理程序。
  • 集成了“视图”渲染引擎,以便通过将数据插入模板来生成响应。
  • 设置常见 web 应用设置,比如用于连接的端口,以及渲染响应模板的位置。
  • 在请求处理管道的任何位置添加额外的请求处理“中间件”。

Express生成器

sudo npm install express-generator -g

视图引擎 & Css引擎

pug模板引擎

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.')