Как отправить результат команды powershell в ответ json в NodeJs с помощью Express? - PullRequest
0 голосов
/ 25 апреля 2018

Как справиться с этой задачей?

Мне нужны push-данные из события Powershell.on , чтобы ответить на некоторые данные на веб-странице клиента. Но я не хороший программист. Как это сделать?:

router.all('/', (req, res, next) => {
    var NetbiosName = req.query.hostname.split('.', 1);
    var cmd = "New-ADComputer -Name " +  NetbiosName[0] + " -SamAccountName " + 
    NetbiosName[0]; 
    var gdata;
    let ps = new PowerShell(cmd);
    ps.on("error", err => {
      console.error(err);
    });
    ps.on("output", data => {
      //need to push this data to responce json
      console.log(data);
    });
    ps.on("error-output", data => {
      //need to push this data to responce json
      console.error(data);
    });
    ps.on("end", code => {
    });

    //console.log(ps.send(['help',]));
    res.status(200).json({
      "hostname": req.query.hostname,
      "userclass": req.query.userclass,
      "host": NetbiosName[0],
      "cmd": cmd,
      "data": "Data from ps.on",
    });
    //console.log(util.inspect(req));
});

1 Ответ

0 голосов
/ 25 апреля 2018
  1. Напишите функцию для отправки данных обратно клиенту.

    function sendResponse(data) {
        res.status(200).json({
            "hostname": req.query.hostname,
            "userclass": req.query.userclass,
            "host": NetbiosName[0],
            "cmd": cmd,
            "data": data
        });
    }
    
  2. Вызов этой функции из объявленных вами событий вывод и ошибка-вывод

    ps.on("output", data => {
        sendResponse(data);
    });
    ps.on("error-output", data => {
        sendResponse(data);
    });
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...