当前我正在研究node.js中的自动docx2pdf转换器。我正在使用unoconv。 当我运行shell命令中工作得很好:node.js child_process does not working
unoconv -f pdf "/opt/bitnami/apache2/htdocs/123.docx"
但我想打电话从node.js的这个命令,也有一些模块(unoconv包装),但没有这个工作对我来说。所以我只想从上面调用这个命令。我尝试了所有来自node.js shell command execution的解决方案,但他们不工作。
为什么此代码片段doesent对我有用?
function run_cmd(cmd, args, callBack) {
var spawn = require('child_process').spawn;
var child = spawn(cmd, args);
var resp = "";
child.stdout.on('data', function(buffer) {
resp += buffer.toString()
});
child.stdout.on('end', function() {
callBack(resp)
});
} //()
run_cmd("unoconv", ['-f pdf "/opt/bitnami/apache2/htdocs/123.docx"'], function(text) {
console.log(text)
});
即使我从pm2作为服务或直接使用节点命令运行脚本,它也不会产生输出。我希望你可以帮助我! 在此先感谢
我建议你也听'child.stderr.on( “数据” ......'和'child.on( “接近” ...'来看看你 – Hampus
@Hampus好的,谢谢我有一个新的错误:致命的Python错误:Py_Initialize:无法获取tImportError:没有名为'encodings'的模块,但为什么只有在从节点调用命令时才出现而不是从命令行? – t333o
尝试使用'python --version'打印在命令行上运行的哪个版本的python,然后从节点内执行相同的操作。 – Hampus