Firebase的云功能:产生ImageMagick语法

问题描述 投票:0回答:2

我想使用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并获取执行的输出。

node.js firebase firebase-storage google-cloud-functions
2个回答
0
投票

你的问题Cannot read property 'on' of undefined源于你如何添加stdoutstderr听众。您必须获取进程并将侦听器添加到该进程,而不是直接添加到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
});

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 });
© www.soinside.com 2019 - 2024. All rights reserved.