问题
使用Node.js Express.js编写了3个月后,MongoDB和MSSQL实现了当用户运行复杂查询(需要15秒)时,其他用户在大型查询响应结束之前没有得到任何响应。
测试代码
所以我决定创建一个简单的应用程序并测试它。
const config = {
port : 8080
};
const express = require('express');
/** RUN */
const app = express();
const http = require('http').Server(app);
/**
* ROUTES
*/
app.get("/abc", function (req, res,next) {
res.sendStatus(200);
//next();
});
app.get("/", function (req, res,next) {
var seconds = 10;
var newDate = new Date().getTime() + seconds * 1000;
var waitTill = new Date(newDate);
while(waitTill > new Date()){
console.log("waiting : " + (newDate - new Date().getTime()));
}
res.sendStatus(200);
//next();
});
/**
* START
*/
http.listen(config.port,function (error) {
if(error) logger.error(error);
console.info("Server running on http://localhost:" + config.port);
});
结果
我向localhost:8080 /和localhost:8080 / abc发出了给定订单的请求。
http://localhost:8080/(10.02 s)
http://localhost:8080/abc(10.02 s)
结论
问题
如何使用express.js route创建异步响应?