Очень простой веб-сервер ответа на запрос в NodeJS - PullRequest
0 голосов
/ 30 сентября 2011

Я изучаю узел JS и хочу создать очень простой одноцелевой веб-сервис, который запускает команду windows (для создания нового пользователя на сервере чата ejabberd) на сервере, где клиент может передать конкретный аргумент команде(используя ajax я представляю).

Я использовал базовое руководство createServer в качестве шаблона:

var sys = require('util')
var http = require('http'); 
var exec = require('child_process').exec;

var path = '"C:\\Program Files\\ejabberd-2.1.8\\bin\\ejabberdctl"'; 

http.createServer(function (req, res) {

       var cmd = path + ' register nodeuser ejabberhost xxxxxx';

       var child = exec(cmd, function (error, stdout, stderr) {

       var msg;

        if (error !== null) {
          msg = 'Error : ' + error; 
        }
        else{
          msg = stdout;
        }
           // this will prob be JSON
        res.writeHead(200, {'Content-Type': 'text/plain'}); 
        res.end(msg); 
}); 

}).listen(1337, "localhost"); 

console.log('Server running at http://localhost:1337/');

В приведенном выше коде «nodeuser» необходимо заменить аргументом, переданным клиентом взапрос, используя ajax.Как я могу настроить этот код для достижения этого?

1 Ответ

2 голосов
/ 30 сентября 2011

Проблемы с входной санитарией в стороне, вот как бы вы это сделали:

http.createServer(function (req, res) {
    var dataInput;
    if (req.url === '/foo') {
        req.on('data', function (chunk) {
            dataInput = chunk.toString();
        })
    }
    if (dataInput !== undefined) {
        var cmd = path + ' register nodeuser ejabberhost ' + dataInput;
    }

    ...
...