我希望使用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并获取执行的输出。
答案 0 :(得分:0)
您的问题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
});
答案 1 :(得分:0)
在将('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 });