Ответ 1
Вот пример использования Express и HTML-формы.
var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
app.use(express.bodyParser());
app.post('/', function(req, res) {
console.log(req.body);
res.send(200);
});
server.listen(process.env.PORT, process.env.IP);
В приведенном выше коде будет запущен экземпляр Express, который представляет собой структуру веб-приложения для Node. Модуль bodyParser()
используется для анализа тела запроса, поэтому вы можете читать данные сообщения. Затем он будет слушать запросы POST
на маршруте /
.
<form method="post" action="/">
<input type="test" name="field1">
<input type="test" name="field2">
<input type="submit">
</form>
И если вы отправите эту форму в req.body
для маршрута /
, вы получите результат:
{ field1: 'form contents', field2: 'second field contents' }
Чтобы запустить функцию, просто поместите ее внутри обработчика POST
следующим образом:
var foo = function() {
// do something
};
app.post('/', function(req, res) {
console.log(req.body);
res.send(200);
// sending a response does not pause the function
foo();
});
Если вы не хотите использовать Express, вы можете использовать собственный HTTP-модуль, но вам придется самостоятельно анализировать тело запроса HTTP.
var http = require('http');
http.createServer(function(request, response) {
if (request.method === 'POST') {
var data = '';
request.on('data', function(chunk) {
data += chunk;
});
request.on('end', function() {
// parse the data
foo();
});
}
}).listen(80);