express 是基于nodejs 的http 模块封装的一个框架
下面是一个极简的用例:
const express = require("express");
const app = express();
app.param('userid', function(req, res, next, userid) {
req.user = getUser(userid);
next();
});
app.use("/water",function(req,res,next){
console.log("middle");
next();
});
function getUser(userId){
return {
userId,
age:8,
name:"freemen"
}
}
function setUser(user){
}
app.get('/username/:userid/:name',function(req,res){
console.log(req.user);
console.log(req.params);
req.user.name = req.params.name;
setUser(req.user);
res.end("update username success!");
});
app.get('/username/:userid/:age',function(req,res){
req.user.age = req.params.age;
setUser(req.user);
res.end("update username success!");
});
app.get("/user",function(req,res){
console.log(req.query);
console.log(req.path);
console.log(req.hostname);
});
app.listen(8888);
试着实现下它的这些功能 主要是路由和中间件部分:
核心思想
导出一个httpServer 函数 给这个函数定义一个名为listen 的属性 他要干的事情就是 在调用的时候用http启一个服务并监听相应的端口
app.listen = (...rest)=>{
const server = http.createServer(app);
server.listen(...rest)