Coursera 笔记

Module 03 · Express Web Application FrameworkExpress Web 应用框架

Cheatsheet - Express Web Application Framework速查表:Express Web 应用框架

Coursera ↗

包/方法 描述 代码示例
依赖项在 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