2011-12-14 29 views
20

Trong Express.js, có cách nào khác để cài đặt chức năng gọi lại được thực thi khi ứng dụng tắt?Móc tắt máy Express.js

+0

Những câu trả lời dưới đây không phải là hữu ích trong mọi hoạt động trong ngày, bạn đang tìm kiếm [này] (https://stackoverflow.com/questions/14031763/doing-a-cleanup-action- just-before-node-js-exits) - process.on ('SIGINT',() => {...}) – Midas

Trả lời

20

Bạn có thể sử dụng Node.js core process 'exit' event như vậy:

process.on('exit', function() { 
    // Add shutdown logic here. 
}); 

Tất nhiên, sự kiện vòng lặp chính sẽ ngừng chạy sau khi chức năng exit trả nên bạn không thể sắp xếp bất kỳ giờ hoặc callbacks từ bên trong mà chức năng (ví dụ: bất kỳ I/O nào phải đồng bộ).

1

Nếu bạn cần truy cập vào một cái gì đó trong phạm vi hiện tại, bạn có thể bind() như trong câu trả lời này: https://stackoverflow.com/a/14032965/1410035 nhưng bạn có thể muốn ràng buộc this.

function exitHandler(options, err) { 
    if (options.cleanup) console.log('clean'); 
    if (err) console.log(err.stack); 
    if (options.exit) process.exit(); 
} 

process.on('exit', exitHandler.bind(null,{cleanup:true})); 
Các vấn đề liên quan