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

Я использую этот простой web-сервер для быстрого тестирования приложений, которые должны отправлять объекты JSON на сервер.
Для начала надо установить NodeJS (если он еще не установлен). В Ubuntu это делается с помощью следующей команды в терминале:
1
sudo apt-get install nodejs
Затем создаем файл (например, server.js) и помещаем в него следующий код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
});
Далее сохраняем файл и запускаем сервер с помощью команды:
1
nodejs server.js
Сервер будет слушать порт 8080, в случае входящего запроса пытаться интерпретировать его тело как объект JSON (в данном случае, объект с двумя полями: var1 и var2), выводить значение полей в консоль и отправлять обратно HTTP-код 200 (ОК). Если тело запроса не удалось интерпретировать как объект JSON, в консоль будет выведена ошибка (как и в случае, если ошибка произошла при приеме запроса или передаче ответа).
Протестировать работу сервера можно с помощью утилиты curl:
1
curl -H "Content-Type: application/json" -X POST -d '{"var1":"1","var2":"0"}' 127.0.0.1:8080

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

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