Я использую сервер Узла/экспресса. Тайм-аут по умолчанию экспресса составляет 120 000 мс, но это недостаточно для меня. Когда мой ответ достигнет 120 000 мс, консоль зарегистрируется POST /additem 200 120006ms
и страница показывает ошибку, таким образом, я хочу установить тайм-аут на большее значение. Как я сделал бы это?
С последним NodeJS можно экспериментировать с этим патчем обезьяны:
const http = require("http");
const originalOnSocket = http.ClientRequest.prototype.onSocket;
require("http").ClientRequest.prototype.onSocket = function(socket) {
const that = this;
socket.setTimeout(this.timeout ? this.timeout : 3000);
socket.on('timeout', function() {
that.abort();
});
originalOnSocket.call(this, socket);
};
Соединение для выражения выпуска № 3330
можно установить тайм-аут любой глобально для всего сервера:
var server = app.listen();
server.setTimeout(500000);
или только для определенного маршрута:
app.post('/xxx', function (req, res) {
req.setTimeout(500000);
});