洋葱圈next方法
const express = require("express")
const app = express();
app.use((req,res,next) => {
console.log("aaa")
next();
console.log("111")
})
app.use((req,res,next) => {
console.log("bbb")
next();
console.log("222")
})
app.use((req,res,next) => {
console.log("ccc")
next();
console.log("333")
})
app.listen(3000, () => {
console.log("3000端口启动")
})
输出结果
如果不调用next,后面定义的use不能被顺序调用
const express = require("express")
const app = express();
app.use((req,res,next) => {
console.log("aaa")
console.log("111")
})
app.use((req,res,next) => {
console.log("bbb")
next();
console.log("222")
})
app.use((req,res,next) => {
console.log("ccc")
next();
console.log("333")
})
app.listen(3000, () => {
console.log("3000端口启动")
})
路由使用 send
app.get("/aa",(req,res)=> {
res.statusCode = 200
res.send("111")
})
app.post("/bb",(req,res)=> {
res.statusCode = 200
res.send({aa:'xxx'})
})
app.put("/cc",(req,res)=> {
res.statusCode = 200
res.send("ok")
})
app.delete("/dd",(req,res)=> {
res.statusCode = 200
res.send("ok")
})
send与end区别
1.send会自动根据内容,转化返回的信息
- 转化标签头格式
- 200的状态码
- json对象转字符串
2.end只处理输出
静态资源加载
app.use(express.static(path.join(__dirname, 'public')));
cookies使用
app.post("/setcookie",(req,res)=> {
res.cookie('name', 'stone', {maxAge: 6000, httpOnly: true})
res.send('success for set up')
})
app.get("/getcookie",(req,res)=> {
res.send(JSON.stringify(req.cookies))
})
express脚手架
npm install -g express-generator
express --view=pug myapp
DEBUG=myapp:* npm start