执行命令不反馈输出

时间:2018-12-14 14:56:04

标签: node.js firebase firebase-realtime-database

执行终端中importCommand变量中的命令时,该命令正确地反馈输出并开始导入。

在Node中执行时,应用程序挂起,我没有收到任何输出(我不确定它是否在做任何事情)。

firebase-import扩展名可以在这里找到:https://github.com/FirebaseExtended/firebase-import

任何人都可以告诉我为什么脚本不反馈信息/不应该执行命令吗?

const importCommand = 'firebase-import --database_url mydatabase.com --path /path --json ./file.json --force --service_account ./service.json';

const exec = require('child_process').exec;
const child = exec(importCommand,
    (error, stdout, stderr) => {
        console.log(`stdout: ${stdout}`);
        console.log(`stderr: ${stderr}`);
        if (error !== null) {
            console.log(`exec error: ${error}`);
        }
});

1 个答案:

答案 0 :(得分:1)

不知道为什么,但是将代码更改为以下代码即可:

const importCommand = 'firebase-import --database_url mydatabase.com --path /path --json ./file.json --force --service_account ./service.json';
const { exec } = require('child_process');
const importProcess = exec(importCommand);

importProcess.stdout.pipe(process.stdout);

importProcess.stdout.on('exit', () => {
  console.log('Finished importing stops');
});