源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

轻松创建nodejs服务器(4):路由

  • 时间:2021-01-28 03:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:轻松创建nodejs服务器(4):路由
服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤。 第一步我们需要先解析出请求URL的路径,我们引入url模块。 我们来给onRequest()函数加上一些逻辑,用来找出浏览器请求的URL路径:
[u]复制代码[/u] 代码如下:
var http = require("http"); var url = require("url"); function start() {  function onRequest(request, response) {   var pathname = url.parse(request.url).pathname;   console.log("Request for " + pathname + " received.");   response.writeHead(200, {"Content-Type": "text/plain"});   response.write("Hello World");   response.end();  }  http.createServer(onRequest).listen(8888);  console.log("Server has started."); } exports.start = start;
好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。 接着我们来编写路由,建立一个名为router.js的文件,代码如下:
[u]复制代码[/u] 代码如下:
function route(pathname) {  console.log("About to route a request for " + pathname); } exports.route = route;
这段代码什么都没干,我们先把路由和服务器整合起来。 我们接着扩展服务器的start()函数,在start()中运行路由函数,并将pathname作为参数传给它。
[u]复制代码[/u] 代码如下:
var http = require("http"); var url = require("url"); function start(route) {  function onRequest(request, response) {   var pathname = url.parse(request.url).pathname;   console.log("Request for " + pathname + " received.");   route(pathname);   response.writeHead(200, {"Content-Type": "text/plain"});   response.write("Hello World");   response.end();  }  http.createServer(onRequest).listen(8888);  console.log("Server has started."); } exports.start = start;
同时,我们会相应扩展index.js,使得路由函数可以被注入到服务器中:
[u]复制代码[/u] 代码如下:
var server = require("./server"); var router = require("./router"); server.start(router.route);
运行index.js,随便访问个路径,比如/upload,就会发现控制台输出,About to route a request for /upload. 这就意味着我们的HTTP服务器和请求路由模块已经可以相互交流了。 下一节我们将实现针对不同的URL请求给予不同的反馈。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部