路径分发也称之为 ​​路由​​, 就是根据不同的请求路径返回不同的数据

根据不同的请求路径返回不同的数据

通过请求监听方法中的 ​​request​​ 对象, 我们可以获取到当前请求的路径, 通过判断请求路径的地址就可以实现不同的请求路径返回不同的数据

  • request对象其实是​​http.IncomingMessage​​ 类的实例
  • response对象其实是​​http.ServerResponse​​ 类的实例

注意点: 如果通过end方法来返回数据, 那么只会返回一次, 如果通过write方法来返回数据, 那么可以返回多次, write方法不具备结束本次请求的功能, 所以还需要手动的调用end方法来结束本次请求

let http = require("http");

// 1.创建一个服务器实例对象
let server = http.createServer();
// 2.注册请求监听
server.on("request", function (req, res) {
res.writeHead(200, {
"Content-Type": "text/plain; charset=utf-8"
});
console.log(req.url);
if (req.url.startsWith("/index")) {
res.end("首页1");
res.end("首页2");
} else if (req.url.startsWith("/login")) {
res.end("登录");
} else {
res.end("没有数据");
}
});
// 3.指定监听的端口
server.listen(3000);

通过 ​​write​​ 方法返回多次

let http = require("http");

// 1.创建一个服务器实例对象
let server = http.createServer();
// 2.注册请求监听
server.on("request", function (req, res) {
res.writeHead(200, {
"Content-Type": "text/plain; charset=utf-8"
});
console.log(req.url);
if (req.url.startsWith("/index")) {
res.write("首页1");
res.write("首页2");
res.end();
} else if (req.url.startsWith("/login")) {
res.end("登录");
} else {
res.end("没有数据");
}
});
// 3.指定监听的端口
server.listen(3000);