好吧,我一直在寻找高低,显然我错过了一招。
标准NodeJS / Express组合,进行数据库调用(thistakesalotoftime()),可能需要一段时间才能完成。如果我在第一个请求正在进行时收到新请求,则第一个任务的呈现结果有时会流式传输到请求#2的响应。
介意,我对NodeJS有些新鲜,主要来自PHP背景。从未遇到过Apache的问题:)
var express = require('express');
var app = express();
var mysql = require('mysql');
function thistakesalotoftime(cb) {
var connection = mysql.createConnection({
host : '127.0.0.1',
user : 'bob',
password : 'uncle'
});
connection.connect(function(err) {
console.log('connected as id ' + connection.threadId);
});
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
cb(results.solution);
});
}
app.get('/', function (req, res) {
thistakesalotoftime(function(data) {
res.send(data);
});
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
即使这个极其简化的应用实例也会发生这种情况。请赐教。欢迎任何和所有提示。