我想使用imagemagick使用云功能将图像的高度和宽度上传到firebase存储。
我写了以下代码:
var child = spawn('identify', ["-ping","-format","`%w %h`",tempLocalFile]);
child.stdout.on('data', function(data) {
console.log('stdout: ' + data);
//Here is where the output goes
});
child.stderr.on('data', function(data) {
console.log('stderr: ' + data);
//Here is where the error output goes
});
但firebase日志显示错误:
Cannot read property 'on' of undefined
at mkdirp.then.then (/user_code/index.js
请建议如何编写Imagemagick并获取执行的输出。
你的问题Cannot read property 'on' of undefined
源于你如何添加stdout
和stderr
听众。您必须获取进程并将侦听器添加到该进程,而不是直接添加到spawn
返回的承诺。代码段:
var spawnPromise = spawn('identify', ["-ping","-format","`%w %h`",tempLocalFile]);
var childProcess = spawnPromise.childProcess;
childProcess.stdout.on('data', function(data) {
console.log('stdout: ' + data);
//Here is where the output goes
});
childProcess.stderr.on('data', function(data) {
console.log('stderr: ' + data);
//Here is where the error output goes
});
如果你使用('child-proces-promise').spawn
作为firebase thumbnail sample,你必须注意它返回一个promise,并且可以使用childProcess
属性访问子进程。
var promise = spawn('identify', ["-ping","-format","`%w %h`",tempLocalFile]);
var child = promise.childProcess;
child.stdout.on('data', function(data) { // do something });
child.stderr.on('data', function(data) { // do something });