更新:
似乎是 wkhtmltopdf 没有正确退出的问题
我在节点中执行以下操作:
console.log("before");
fs.writeFile(html_filename, html, function (err) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("wrote html fine; now converting");
exec('wkhtmltopdf ' + html_filename + ' ' + pdf_filename, function (err, stdout, stderr) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("converted; now reading");
fs.readFile(pdf_filename, function (err, data) {
if (err) {res.writeHead(400); res.end("" + err); return;}
console.log("read fine; now serving");
res.writeHead(200, {"content-type" : "application/pdf"});
res.end(data);
});
});
});
这工作正常,除了每次执行时,节点程序都会挂起,当我 cmd + tab 时,我看到一个“exec”进程。当我选择此过程时,节点程序会继续。
任何想法为什么?