Nodejs не может прочитать свойство addEventListner Null - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь создать кнопку, которая запускает командную строку для установки программного обеспечения для моей программы. Мои nodejs:

$( "install" ).addEventListener('click',() => {
    var child_process = require('child_process');
    child_process.exec('test.bat', function(error, stdout, stderr) {
        console.log(stdout);
})});

и html

<button type="button" class="btn btn-outline-installer" id="install">Run Installer</button>

Файл js включен вHTML-код, когда я запускаю свое приложение, однако он возвращает:

C:\Users\ninja_000\Desktop\tron-gui\index.js:20 Uncaught TypeError: Cannot read property 'addEventListener' of null
    at Object.<anonymous> (C:\Users\ninja_000\Desktop\tron-gui\index.js:20)
    at Object.<anonymous> (C:\Users\ninja_000\Desktop\tron-gui\index.js:25)
    at Module._compile (module.js:569)
    at Object.Module._extensions..js (module.js:580)
    at Module.load (module.js:503)
    at tryModuleLoad (module.js:466)
    at Function.Module._load (module.js:458)
    at Module.require (module.js:513)
    at require (internal/module.js:11)
    at index.html:30

Помощь приветствуется test.bat находится в той же папке, что и GUI

1 Ответ

0 голосов
/ 15 мая 2018

Прежде всего, Node.js является языком на стороне сервера и в любом случае не будет прослушивать события на вашей кнопке.

То, о чем вы говорите, это то, что должен делать Javascript.

Во-вторых, вам нужно использовать #install, если вы ссылаетесь на кнопку с идентификатором install в JQuery.

В-третьих, вы объединяете программирование на стороне сервера и на стороне клиента. Вы не можете вызвать child_process из Javascript. Это API-интерфейс node.js, и, следовательно, вы не сможете запустить файл bat, который хотите запустить.

...