var express = require('express');
var app = express();
app.use(express.static('public'));
app.get('/index.htm', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
app.get('/process_get', function (req, res) {
// Prepare output in JSON format
response = {
first_name:req.query.first_name,
last_name:req.query.last_name
};
console.info(response);
res.end(JSON.stringify(response));
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.info("Example app listening at http://%s:%s", host, port)
})
1) У меня есть Учебное пособие из учебного пункта.
2) Я думаю, что req в / process_get будет пустым, но здесь req имеет все мои данные, как это возможно
3) Я думаю, что объем этой функции ограничен только этой функцией. но как он может получить доступ к значению предыдущей функции
4) как мы можем справиться, если у нас есть несколько объектов req в коде





req - это объект, который представляет запрос к серверу. Это аргумент обратного вызова, который вызывается, когда сервер получает запрос. Вы можете думать об этом как о результате app.get для маршрута / process_get. res работает точно так же, но представляет собой ответ, отправленный сервером. res.end() - это то, что отправляет ответную полезную нагрузку запрашивающей стороне.
И req, и res существуют только в области функции обратного вызова. Вот почему в обратных вызовах обоих маршрутов /index.htm и /process_get есть req и res.
Надеюсь, это проясняет ситуацию.
Затем Express.js будет вызывать его как часть своего стека промежуточного программного обеспечения при обработке запроса, передавая ему аргументы req, res и следующий.