Я работаю над Node API, который я могу использовать для запуска некоторых команд в Терминале.Например, когда я перехожу к: http://localhost:3000/runLS
, в моем рабочем каталоге запускается команда ls -la
, а вывод возвращается в API в виде JSON.Я дошел до того, что смог запустить команду терминала из API.У меня есть два файла кода: commands.js, где я определил свои команды.
var exec = require('child_process').exec;
function puts(error, stdout, stderr) {
console.log(stdout)
}
const runLS = (request, response) => {
exec("ls -la", puts, (error, results) => {
if(error) {
throw error
}
})
}
module.exports = {
runLS
}
У меня также есть app.js:
const express = require('express')
const cors = require('cors')
const app = express()
const port = 3000
var corsOptions = {
origin: '*',
credentials: true };
app.use(cors(corsOptions));
app.get('/', (request, response) => {
response.json({ info: 'Commandline status API ' })
})
const comm = require('./commands_test.js')
app.get('/runLS', comm.runLS)
app.listen(port, () => {
console.log(`App running on port ${port}.`)
})
Когда я запускаю это и затем идуна http://localhost:3000/runLS
я получаю стандартный вывод на терминал.Я, однако, хочу, чтобы он отображался в браузере как JSON.Я отредактировал мой файл command.js, как показано ниже:
var exec = require('child_process').exec;
const runLS = (error, stdout, stderr) => {
exec("ls -la", (error, results) => {
if(error) {
throw error
}
stdout.status(200).json(stdout.rows)
})
}
module.exports = {
runLS
}
, а затем отредактировал мой app.js:
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const app = express()
const port = 3000
var corsOptions = {
origin: '*',
credentials: true };
app.use(cors(corsOptions));
app.use(bodyParser.json())
app.use(
bodyParser.urlencoded({
extended: true,
})
)
app.get('/', (request, response) => {
response.json({ info: 'Commandline status API ' })
})
const comm = require('./commands_test.js')
app.get('/runLS', comm.runLS)
app.listen(port, () => {
console.log(`App running on port ${port}.`)
})
Когда я иду на конечную точку, теперь просто ничего не получаю, естьошибок в терминале тоже нет.Я Node Noob, поэтому я был бы признателен за объяснения на простом языке.Есть идеи?[Если это что-то значит, я работаю над Git Bash на windows как мой терминал]