Node.js 基础:使用 http 模块实现简单路由分发

作者:栖木时间:2026-10-22 01:44:04浏览:419

本文通过三个核心文件 server.js、route.js 和 index.js 演示 Node.js 中基于 http 模块的简单路由实现。通过 url.parse 解析请求路径,并将处理逻辑分发至独立的路由模块,帮助初学者理解后端请求处理与模块化的基本流程。

服务器启动与请求监听

文件 server.js 负责启动 HTTP 服务。代码首先引入 http 和 url 模块,定义 start 函数接收 route 处理逻辑。在 onRequest 回调中,利用 url.parse 解析请求 URL 的路径名,并调用传入的 route 函数进行初步处理。随后服务器返回 200 状态码及文本内容“只是一个练手罢了”。最后通过 http.createServer 创建服务并监听 8888 端口,启动成功后在控制台输出“服务启动”提示。


var http = require("http");
var url = require("url");
function start(route){//route.js 的route方法
  //服务实现
  function onRequest(request,response){
    var pathname = url.parse(request.url.).pathname;
    route(pathname); //
    
    response.writeHead(200,{"Content-Type":"text/plain"});
    response.write("只是一个练手罢了");
    response.end();
  }
  //创建服务
  http.createServer(onRequest).listen(8888);//端口号8888
  console.log("服务启动");//后台输出,表示服务启动成功
}
exports.start = start; //将start方法暴露出去

========================================

路由处理逻辑

文件 route.js 定义了路由处理函数。该函数接收 pathname 参数,并在控制台打印“请求路径是:”后接路径名,用于在后台日志中区分不同的请求地址。此模块通过 exports.route 导出该方法,供其他模块调用以执行具体的路由逻辑。


function route(pathname){
  console.log("请求路径是:" + pathname); //后台查看请求路劲  区分请求的地址
}
exports.route = route;

========================================

模块集成与入口调用

文件 index.js 作为入口文件,分别引入 server 和 router 模块。通过调用 server.start 方法,并将 router.route 作为参数传递,将路由处理逻辑注入到服务器启动流程中,从而完成从请求接收到路由分发的完整链路。


var server = require("./server");
var router = require("./route");
server.start(router.route);//传递給start的是router的route方法

作者最新文章