有没有办法让Express服务器同时处理多个GET请求?
考虑以下示例:
server.js
var express = require('express')
var app = express();
app.get('/test01', function (req, res, next) {
for (i = 0; i < 1000000000; i++) {
var temp = i*i;
}
res.end('{"success" : "test01", "status" : 200}');
});
app.get('/test02', function (req, res, next) {
for (i = 0; i < 1; i++) {
var temp = i*i;
}
res.end('{"success" : "test02", "status" : 200}');
});
app.listen(8081, function () {
console.log("server listening at %s:%s", this.address().address, this.address().port)
})
client.js
var request = require("request");
request("http://127.0.0.1:8081/test01", function(error, response, body) {
console.log(body);
});
request("http://127.0.0.1:8081/test02", function(error, response, body) {
console.log(body);
});
运行client.js后,输出如下:
{"success" : "test01", "status" : 200}
{"success" : "test02", "status" : 200}
这意味着第二个请求必须等待第一个请求完成才能执行。
我需要在server.js中做出哪些修改,才能让这两个请求同时运行,并使“test01”成为非阻塞服务,在test02完成之前完成test01?
我不想改变client.js中的任何内容,也无法控制调用服务的时间。例如,test01可能会连续调用3次,然后再调用test02。