如何将js脚本文件作为子进程node.js执行

时间:2018-12-11 09:26:34

标签: javascript node.js nodemailer

我有一个问题,我正在尝试执行使用nodemailer发送邮件的文件,我需要从另一个JS文件执行该文件,我试图这样做:

const  exec  = require('child_process').exec;
       exec('"C:/Users/NikitaSeliverstov/node_modules/.bin/send.js"');

,但邮件未发送。我不需要发送send.js文件的参数,只需发送具有完全指定路径的文本文件即可。很抱歉出现明显的问题,但我无法解决。 我也尝试这样做:

 const  exec  = require('child_process').exec;
        exec('"node C:/Users/NikitaSeliverstov/node_modules/.bin/send.js"');

1 个答案:

答案 0 :(得分:2)

您需要指定一个在执行exec命令后将调用的回调函数:

我创建了2个文件:

anotherTest.js

console.log('another test');

test.js

const exec = require('child_process').exec;

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

这是输出:

stdout: another test

stderr: 

您通过在终端/控制台中执行“ node test.js ”来运行test.js脚本。您可以使用所需的参数更改exec命令的参数。