HTTP模块-路径的分发
  TEZNKK3IfmPf 2023年11月12日 15 0

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

通过请求监听方法中的 ​​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);
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   30   0   0 服务器
  TEZNKK3IfmPf   2024年05月31日   52   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   31   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   28   0   0 httphttps
  TEZNKK3IfmPf   2024年05月31日   43   0   0 服务器java
  TEZNKK3IfmPf   2024年05月31日   37   0   0 服务器http
TEZNKK3IfmPf