NodeJS: простейший web-сервер принимающий POST-запросы с JSON

Я использую этот простой web-сервер для быстрого тестирования приложений, которые должны отправлять объекты JSON на сервер.
Для начала надо установить NodeJS (если он еще не установлен). В Ubuntu это делается с помощью следующей команды в терминале:
sudo apt-get install nodejs
Затем создаем файл (например, server.js) и помещаем в него следующий код:
var http = require('http');

const PORT=8080; 

function handleRequest(request, response){
    var body = [];
    request.on('error', function(err) {
        console.error(err);
    }).on('data', function(chunk) {
        body.push(chunk);
    }).on('end', function() {
        body = Buffer.concat(body).toString();
        try {
            var jsonObj = JSON.parse(body);
            console.log(jsonObj.var1);
            console.log(jsonObj.var2);
        } catch (e) {
            console.error(e);
        }

        response.on('error', function(err) {
            console.error(err);
        });

        response.writeHead(200);    
        response.end();
    });
}

var server = http.createServer(handleRequest);

server.listen(PORT, function(){
    console.log("Server listening on: http://localhost:%s", PORT);
});
Далее сохраняем файл и запускаем сервер с помощью команды:
nodejs server.js
Сервер будет слушать порт 8080, в случае входящего запроса пытаться интерпретировать его тело как объект JSON (в данном случае, объект с двумя полями: var1 и var2), выводить значение полей в консоль и отправлять обратно HTTP-код 200 (ОК). Если тело запроса не удалось интерпретировать как объект JSON, в консоль будет выведена ошибка (как и в случае, если ошибка произошла при приеме запроса или передаче ответа).
Протестировать работу сервера можно с помощью утилиты curl:
curl -H "Content-Type: application/json" -X POST -d '{"var1":"1","var2":"0"}' 127.0.0.1:8080

Комментариев нет :

Отправить комментарий