Hướng dẫn nodejs request post timeout - yêu cầu nodejs hết thời gian chờ đăng bài

Tôi đang sử dụng một máy chủ nút/Express. Thời gian chờ mặc định của Express là 120.000 ms, nhưng nó là không đủ cho tôi. Khi phản hồi của tôi đạt 120.000 ms, bảng điều khiển sẽ đăng nhập POST /additem 200 120006ms và trang hiển thị lỗi, vì vậy tôi muốn đặt thời gian chờ thành giá trị lớn hơn. Làm thế nào tôi sẽ làm điều đó?

Hướng dẫn nodejs request post timeout - yêu cầu nodejs hết thời gian chờ đăng bài

Một sốkittens

38.1K19 Huy hiệu vàng111 Huy hiệu bạc142 Huy hiệu đồng19 gold badges111 silver badges142 bronze badges

Khi được hỏi ngày 29 tháng 5 năm 2014 lúc 3:33May 29, 2014 at 3:33

Tôi cho rằng bạn đang sử dụng express, với các nhật ký bạn có trong câu hỏi của bạn. Khóa là đặt thuộc tính

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');
0 trên máy chủ (sau đây đặt thời gian chờ thành một giây, sử dụng bất kỳ giá trị nào bạn muốn):

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});
server.timeout = 1000;

Nếu bạn không sử dụng Express và chỉ làm việc với nút vani, nguyên tắc là như nhau. Những điều sau đây sẽ không trả về dữ liệu:

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');

Đã trả lời ngày 29 tháng 5 năm 2014 lúc 6:19May 29, 2014 at 6:19

SomekittenSsomekittensSomeKittens

38.1K19 Huy hiệu vàng111 Huy hiệu bạc142 Huy hiệu đồng19 gold badges111 silver badges142 bronze badges

2

Khi được hỏi ngày 29 tháng 5 năm 2014 lúc 3:33

var options = {
    url:  'http://url',
    timeout: 120000
}

request(options, function(err, resp, body) {});

Tôi cho rằng bạn đang sử dụng express, với các nhật ký bạn có trong câu hỏi của bạn. Khóa là đặt thuộc tính

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');
0 trên máy chủ (sau đây đặt thời gian chờ thành một giây, sử dụng bất kỳ giá trị nào bạn muốn):

Nếu bạn không sử dụng Express và chỉ làm việc với nút vani, nguyên tắc là như nhau. Những điều sau đây sẽ không trả về dữ liệu:

Đã trả lời ngày 29 tháng 5 năm 2014 lúc 6:1936 gold badges103 silver badges159 bronze badges

SomekittenSsomekittensMay 29, 2014 at 3:37

Thử cái này:Lee

Tham khảo tài liệu của yêu cầu cho các tùy chọn khác.3 gold badges25 silver badges46 bronze badges

6

Cái cằm

Phù bằng vàng 18.8K36

var server = app.listen();
server.setTimeout(500000);

Đã trả lời ngày 29 tháng 5 năm 2014 lúc 3:37

app.post('/xxx', function (req, res) {
   req.setTimeout(500000);
});

LEELEEOct 14, 2019 at 8:39

Ivan_ugIvan_ugIvan_ug

2.6823 huy hiệu vàng25 Huy hiệu bạc46 Huy hiệu đồng2 gold badges15 silver badges16 bronze badges

3

Liên kết để thể hiện vấn đề #3330

request.setTimeout(0)

Bạn có thể đặt thời gian chờ toàn cầu cho toàn bộ máy chủ:Aug 28, 2017 at 6:58

hoặc chỉ cho con đường cụ thể:Bhavik

Đã trả lời ngày 14 tháng 10 năm 2019 lúc 8:391 silver badge5 bronze badges

1

2.2772 Huy hiệu vàng15 Huy hiệu bạc16 Huy hiệu đồng

var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces
*/
server.listen(port);
server.timeout=yourValueInMillisecond

Đối với yêu cầu cụ thể, người ta có thể đặt thời gian chờ thành 0, không phải là thời gian chờ cho đến khi chúng tôi nhận được trả lời từ DB hoặc máy chủ khácSep 22, 2017 at 11:00

Hướng dẫn nodejs request post timeout - yêu cầu nodejs hết thời gian chờ đăng bài

Đã trả lời ngày 28 tháng 8 năm 2017 lúc 6:58Rohith K D

Bhavikbhavik6 silver badges13 bronze badges

3

1671 Huy hiệu bạc5 Huy hiệu đồng

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);
};

Đối với những người có cấu hình trong

var http = require('http');
var server = http.createServer(function (req, res) {
  setTimeout(function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
  }, 200);
}).listen(1337, '127.0.0.1');

server.timeout = 20;
console.log('Server running at http://127.0.0.1:1337/');
1, chỉ cần thêm tham số thời gian chờ sau khi tạo máy chủ HTTP.Mar 22, 2019 at 15:32

Hướng dẫn nodejs request post timeout - yêu cầu nodejs hết thời gian chờ đăng bài

Đã trả lời ngày 22 tháng 9 năm 2017 lúc 11:00Bela Vizy

Rohith K Drohith K D8 silver badges19 bronze badges