Module 03 · Express Web Application FrameworkExpress Web 应用框架
Cheatsheet - Express Web Application Framework速查表:Express Web 应用框架
| 包/方法 | 描述 | 代码示例 |
|---|---|---|
依赖项在 package.json 中 |
一个express 的依赖项版本在4.0 到 5.0之间将被声明为: | "dependencies":{"express":"4.x"} |
| new express() | 创建一个作为服务器应用程序的 express 对象。 | const express = require(“express”); const app = new express(); |
| express.listen() | 在 express 对象上调用 listen 方法,指定服务器监听的端口号。当服务器开始监听时执行该函数。 | app.listen(3333, () => { console.log(“Listening at http://localhost:3333) }) |
| express.get(); | 该方法用于处理对服务器的获取请求。get() 方法需要两个参数;第一个参数定义端点,第二个参数是一个接受请求处理程序和响应处理程序的函数。 | // 处理对端点 /user/about/id 的 GET 查询。 app.get(“user/about/:id”, (req,res)=>{ res.send(“关于用户的响应 ” +req.params.id) }) |
| express.post(); | 该方法用于处理对服务器的创建请求。post() 方法需要两个参数:第一个参数定义端点,第二个参数是一个接受请求处理程序和响应处理程序的函数。 | // 处理对相同端点的 POST 查询。 app.post(“user/about/:id”, (req,res)=>{ res.send(“关于用户的响应 ” +req.params.id) }) |
| express.use() | 该方法接受中间件作为参数。中间件作为守门员,在请求到达 get() 和 post() 处理程序之前按使用顺序执行。中间件的链式调用顺序取决于 .use() 方法绑定它们的顺序。中间件 myLogger() 函数接受三个参数,分别是请求、响应和下一个。您可以定义一个接受这三个参数的方法,然后将其与 express.use() 或 router.use() 绑定。在这里,您创建了一个名为 myLogger 的中间件,并让应用程序使用它。渲染的输出包括请求接收的时间。 | const express = require("express"); const app = new express(); function myLogger(req, res, next){ req.timeReceived = Date(); next(); } app.get(“/”, (req, res)=>{ res.send(“请求接收于 "+req.timeReceived+“ 成功!”) }) |
| express.Router() | 路由级中间件不绑定到应用程序。相反,它绑定到 express.Router() 的实例。您可以为特定路由使用特定中间件,而不是让所有请求都经过相同的中间件。在这里,路由是 /user,您希望请求通过用户路由。定义路由器,定义路由器将使用的中间件函数以及接下来发生的事情,然后将应用程序路由绑定到路由器。 | const express = require(“express”); const app = new express(); let userRouter = express.Router(); let itemRouter = express.Router(); userRouter.use(function (req, res, next){ console.log(“用户查询时间:”, Date()); next(); }) userRouter.get(“/:id”, function (req, res, next) { res.send(“用户 ”+req.params.id+ “ 最近一次成功登录时间 ”+Date()) }) app.listen(3333, () => { console.log(“Listening at http://localhost:3333) }) |
| express.static() | 这是一个静态中间件的示例,用于从服务器端渲染静态 HTML 页面和图像。在应用程序级别,静态文件可以从 cad220_staticfiles 目录渲染。请注意,URL 仅包含服务器地址和端口号,后面跟着文件名。 | const express = require(“express”); const app = new express(); app.use(express.static("cad220_staticfiles")) app.listen(3333, () => { console.log("Listening at http://localhost:3333") }) |
| jsonwebtoken.sign() | 用于基于生成的 JWT(JSON Web 令牌)进行签名 | if (uname === "user" && pwd === "password") { return res.json({ token: jsonwebtoken.sign({ user: "user" }, JWT_SECRET), }); } |
| jsonwebtoken.verify() | 通过传递令牌值和 JWT 秘密作为参数来验证 JWT。 | const verificationStatus = jsonwebtoken.verify(tokenValue, "aVeryVerySecretString"); |
| 项目文件夹结构 | 使用 Express.js 构建的 API 的相对成熟的项目结构是: | test-project/ node_modules/ config/ db.js //数据库连接和配置 credentials.js //应用程序使用的外部服务的密码/API 密钥 models/ //用于 mongoose 模式 items.js prices.js routes/ //不同实体的所有路由在不同文件中 items.js prices.js app.js routes.js //在此处要求所有路由,然后在 package.json |
