Có thể thực thi một chương trình bên ngoài từ bên trong node.js không? Có tương đương với Python os.system()
hoặc bất kỳ thư viện nào thêm chức năng này không?
Có thể thực thi một chương trình bên ngoài từ bên trong node.js không? Có tương đương với Python os.system()
hoặc bất kỳ thư viện nào thêm chức năng này không?
Câu trả lời:
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
exec có giới hạn bộ nhớ của kích thước bộ đệm là 512k. Trong trường hợp này tốt hơn là sử dụng sinh sản. Với spawn, người ta có quyền truy cập vào thiết bị xuất chuẩn của lệnh được thực thi trong thời gian chạy
var spawn = require('child_process').spawn;
var prc = spawn('java', ['-jar', '-Xmx512M', '-Dfile.encoding=utf8', 'script/importlistings.jar']);
//noinspection JSUnresolvedFunction
prc.stdout.setEncoding('utf8');
prc.stdout.on('data', function (data) {
var str = data.toString()
var lines = str.split(/(\r?\n)/g);
console.log(lines.join(""));
});
prc.on('close', function (code) {
console.log('process exit code ' + code);
});
stderr
thay vì stdout
. Trong trường hợp của tôi mặc dù điều đó close
sẽ không bao giờ đến ...
Từ tài liệu Node.js:
Node cung cấp một cơ sở popen ba hướng (3) thông qua lớp ChildProcess.
child_process
mô-đun. Xem tài liệu , trong đó cung cấp một số ví dụ rõ ràng về các trường hợp sử dụng khác nhau.