服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤。
第一步我们需要先解析出请求URL的路径,我们引入url模块。
我们来给onRequest()函数加上一些逻辑,用来找出浏览器请求的URL路径:
复制代码 代码如下:
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的文件,代码如下:
复制代码 代码如下:
function route(pathname) {
console.log("About to route a request for " + pathname);
}
exports.route = route;
这段代码什么都没干,我们先把路由和服务器整合起来。
我们接着扩展服务器的start()函数,在start()中运行路由函数,并将pathname作为参数传给它。
复制代码 代码如下:
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,使得路由函数可以被注入到服务器中:
复制代码 代码如下:
var server = require("./server");
var router = require("./router");
server.start(router.route);
运行index.js,随便访问个路径,比如/upload,就会发现控制台输出,About to route a request for /upload.
这就意味着我们的HTTP服务器和请求路由模块已经可以相互交流了。
下一节我们将实现针对不同的URL请求给予不同的反馈。
nodejs,服务器,路由
更新日志
- 华少翌.2005-华少翌【中唱艺能】【WAV+CUE】
- 群星《十二女声Ⅱ》[WAV/CUE/分轨][527MB]
- 大自然音乐系列《漫步在山裡》[WAV/CUE/分轨][502.8MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]
- 史依弘《史依弘交响乐京剧演唱专辑HQ》头版限量编号[WAV+CUE]
- 曼丽2020《女人三十风继续吹》HQCD[WAV+CUE]
- 曼丽2021《女人三十2雾之恋》HQCD[WAV+CUE]
- 隔壁老樊.2019-我曾【好听音乐】【FLAC分轨】
- 高林生.1993-牵挂你的人是我【白天鹅】【WAV+CUE】
- 洪卓立.2012-找个懂我的女孩(国专)【英皇娱乐】【WAV+CUE】
- 曼丽2022《女人三十3晚秋》HQCD[WAV+CUE]
- 曼丽2018《女人三十4冬天》HQCD[WAV+CUE]
- 柏菲-《好歌30年壹》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 大自然音乐系列《水舞》[WAV/CUE/分轨][424.3MB]
- 大自然音乐系列《星光夜语》[WAV/CUE/分轨][453.3MB]