Модуль child_process еще не загружен - PullRequest
0 голосов
/ 17 апреля 2019

Я ищу NodeJS для запуска скрипта PowerShell из моего скрипта JavaScript.Это код, который я нашел в Интернете:

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.Как я могу это исправить?

1 Ответ

0 голосов
/ 17 апреля 2019

Не знаю, почему этот модуль еще не загружен, но вы неправильно используете функцию require.

См. документы .

КогдаВы предоставляете массив для require, он будет использовать асинхронную версию require, и вам необходимо предоставить обратный вызов, который получит загруженный модуль.

Попробуйте что-то вроде этого:

require(["child_process"], function (cp) {
    var spawn = cp.spawn;
    // ... use spawn()
});
...