我正在研究NodeJS,以便从我的JavaScript脚本运行PowerShell脚本。这是我在网上找到的代码:
var spawn = require("child_process").spawn,child;
child = spawn("powershell.exe",["c:\\test\\mypstest.ps1 -arg1 1"]);
child.stdout.on("data",function(data){
console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
console.log("Powershell Script finished");
});
child.stdin.end(); //end input
当我在html上运行实时服务器时,出现以下控制台错误:
Uncaught Error: Module name "child_process" has not been loaded yet for context: _. Use require([])
当我改变
var spawn = require("child_process").spawn,child;
到
var spawn = require(["child_process"]).spawn,child;
我收到以下错误:
Uncaught TypeError: spawn is not a function index.js
Uncaught Error: Script error for "child_process" require.js
给我的印象是child_process.js
已包含在Node.js安装中。我该如何解决?
答案 0 :(得分:0)
不确定为什么尚未加载该模块,但是您使用的require
功能不正确。
请参见docs。
向require
提供数组时,它将使用require
的异步版本,并且您需要提供一个回调函数来接收已加载的模块。
尝试这样的事情:
require(["child_process"], function (cp) {
var spawn = cp.spawn;
// ... use spawn()
});