我需要从我的节点JS应用程序调用CMD命令, 可能吗 ?
我尝试使用以下(POC)并收到错误
var express = require('express');
var app = express();
app.get('/', function (req, res) {
function cmd_exec(cmd, args, cb_stdout, cb_end) {
var spawn = require('child_process').spawn,
child = spawn(cmd, args),
me = this;
me.exit = 0; // Send a cb to set 1 when cmd exits
child.stdout.on('data', function (data) {
cb_stdout(me, data)
});
child.stdout.on('end', function () {
cb_end(me)
});
}
foo = new cmd_exec('npm', 'install glob --save',
function (me, data) {
me.stdout += data.toString();
},
function (me) {
me.exit = 1;
}
);
setTimeout(
// wait 0.25 seconds and print the output
log_console,
250);
function log_console() {
console.log(foo.stdout);
}
res.send("Hello world");
});
我在以下链接中看到了这段代码
node.js shell command execution
错误是:
TypeError:args选项的值不正确
在child = spawn(cmd, args),
我在这里做错了什么?Currnlty我只是使用npm install命令(仅用于测试)但是我可以执行和运行的任何其他命令就足够了
答案 0 :(得分:2)
执行终端命令时,有两部分:命令和参数。在您的情况下,命令是cmd_exec('npm', ['install', 'glob', '--save'],
,参数是之后的所有内容。
<StackPanel x:Name="EnterInfo" Orientation="Horizontal" HorizontalAlignment="Left" Margin="6,0,0,0">
<TextBox x:Name="mainUserName" IsManipulationEnabled="True" FontSize="14" Height="24" MinWidth="150" Width="Auto"/>
<Button x:Name="nameEnter" IsDefault="True" Content="OK" Height="24" Width="24" FontSize="12" Click="btnNameEnter_Click" Margin="4,0,0,0"/>
</StackPanel>