Как сделать Express JS код выполнения, когда подадрес ajax запрашивается - PullRequest
0 голосов
/ 20 марта 2020

Извините за название. Не знаю, как это выразить. В любом случае, у меня работает сервер Express. js, и я хочу запустить приведенный ниже код при вводе 192.168.1.88/run.

Код, который запускает сценарий python:

exec('python3 /var/www/html/dbfetch.py', (error, stdout, stderr) => {
if (error) {
    console.error(`exec error: ${error}`);
    res.write('Command has failed'); //write a response to the client
    res.end(); //end the response
    return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);

res.write('Command has been run'); //write a response to the client
res.end(); //end the response
});

Express код сервера:

    const express = require('express');
const app = express()
const port = 80
const path = require('path');
const helmet = require('helmet');

app.use(helmet());
app.use(express.static("/var/www/html"));

app.get('/', function(req, res) {
    res.sendFile('hello.html', {root: __dirname});
});

app.listen(port, () => console.log(`Loss Counter is listening on port ${port}!`))

Как я могу это сделать?

1 Ответ

0 голосов
/ 20 марта 2020

Предполагая, что ваш Express сервер находится на 192.168.1.88, просто создайте маршрут для URL http://192.168.1.88/run на вашем Express сервере:

app.get("/run", (req, res) => {
    exec('python3 /var/www/html/dbfetch.py', (error, stdout, stderr) => {
        if (error) {
            console.error(`exec error: ${error}`);
            res.status(500).send('Command has failed'); // write a response to the client
            return;
        }
        console.log(`stdout: ${stdout}`);
        console.log(`stderr: ${stderr}`);

        res.send('Command has been run'); // write a response to the client
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...