后续会补充
1.引入express
1.先下载express框架
创建一个package.json格式的文件,里面写入
{
"dependencies": {
"express": "~4.16.1" //express版本号
}
}
然后打开终端输入
npm i
2.引入express模块
javascript
const express = require("express");
const app = express();
2.使用express
监听端口号
javascript
const port = 5000;
app.listen(port,()=>{
console.log(`server listen on ${port}`)
})
处理请求
javascript
语法:app.请求方式("请求路径",(req,res)=>{})
如果不写请求路径,则匹配所有路径 --> 同 " * "
:路径参数名 --> 匹配动态路径参数,会自动匹配
例:
javascript
app.get("/news/:id/:index",(req,res)=>{
console.log("请求头",req.headers);
console.log("请求路径",req.path);
//会自动转换为对象
console.log("query",req.query); //问号后面的
console.log("params",req.params); //问号前面的动态路径参数
});
处理响应
javascript
语法:res.send(响应内容);
例:
javascript
app.get("/news/:id/:index",(req,res)=>{
res.send({ //send无需手写end()
id:123,
name:"aa"
})
res.setHeader("a","123");//设置响应头
res.redirect(302,"重定向路径")//设置重定向
});
3.Express中间件
类似封装一个功能函数
中间件的使用,可以不写请求路径(匹配所有情况)
javascript
app.use("请求路径",require("中间件"))
1.处理错误的中间件小案例
javascript
//处理错误的中间键
module.exports = (err,req,res,next)=>{
if (err) { //如果发生了错误
const errObj = {
code: 500,
msg: err instanceof Error ? err.message : err,
};
res.status(500),send(errObj);
} else {
next(); //如果没有错误发生就执行下一个函数
}
}
2.处理静态资源中间件
express.static()
当请求时,会根据请求路径,从指定的目录中寻找是否存在该文件
如果存在:直接响应文件内容,而不再移交给后续的中间件
如果不存在:则直接移交给后续的中间件处理
默认情况下,如果映射的结果是一个目录,则会自动使用index.html文件
更改默认文件
javascript
app.use(express.static(..., {
index: "abc.html" //在这里配置就行
}))
用例:
javascript
const path = require("path");
const staticRoot = path.resolve(__dirname,"../public");
app.use(express.static(staticRoot))
3.处理数据中间件
express.urlencoded() (x-www-form-urlencoded)
javascript
app.use(express.urlencoded({
extended: true
}))
express.json() (JSON)
javascript
app.use(express.json())
两个一般一起使用
javascript
app.use(express.urlencoded({
extended: true
}))
app.use(express.json())
Express路由
用法 (方便处理基路径)
创建
javascript
const express = require("express");
const router = express.Router();
router.get("/",(req,res)=>{
res.send("具体的处理");
})
module.exports = router;
使用
javascript
app.use("基路径",require("路由路径"))
cookie
cookie (信息载体,类似于小船)
浏览器发请求给服务器
服务器通过cookie给浏览器发验证信息
浏览器发(请求+cookie[验证信息])给服务器
(浏览器和服务器都存数据)(数据过多服务器会炸)
session (类似加密后的验证信息)
浏览器发请求给服务器
服务器通过cookie给浏览器发session
浏览器发(请求+cookie[session])给服务器
(浏览器和服务器都存数据)(数据过多服务器会炸)
token (JSON Web Token JWT)(类似身份凭证)
浏览器发请求给服务器
服务器通过cookie给浏览器发身份凭证
浏览器发(请求+cookie[身份凭证])给服务器
(浏览器存数据,服务器只存一个密钥就行)
nodemon
npm i -g nodemon 安装
nodemon 要使用的js文件 启动
如果报错的话
1.以管理员的身份打开powerShell
2.输入set-ExecutionPolicy RemoteSigned 回车
3.输入y 回车