【发布时间】:2017-06-22 22:01:58
【问题描述】:
如何实现以下目标?
服务器端:
执行 bash 命令生成文件。然后返回文件D的路径
const exec = Meteor.isServer ? require('child_process').exec : undefined;
Meteor.methods({
createFile_D(){
const BashCommand_A = `generate file A`;
const BashCommand_B = `generate file B, using file A`;
const BashCommand_C = `generate file C, using file B`;
const BashCommand_D = `generate file D, using file C`;
const runCommand = function (cmd) {
let command = exec(cmd, path);
command.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
command.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
command.on('close', (code) => {
console.log(`child process exited with code ${code}`);
resolve('done');
})
}
// execute BashCommand A ~ D
// when it's all done return the path of file D
}
});
客户端:
获取生成文件 D 的路径作为 Meteor.call 的回调
Meteor.call('createFile_D', function (error, result) {
if(error || (result === undefined)) {
throw error;
} else {
do_something_with_result (result);
}
});
【问题讨论】:
-
runCommand是如何/在哪里执行的? -
我可以让你走这么远in this fiddle 不幸的是,我对 Meteor 的了解还不够,不知道现在该做什么:p
标签: javascript meteor promise