Req -> Http (https) Запрос объекта. Вы можете получить запрос запроса, параметры, тело, заголовки и файлы cookie. Вы можете переписать любое значение или добавить что-нибудь там. Однако перезапись заголовков или файлов cookie не повлияет на вывод обратно в браузер.
Res -> Http (https) Response Object. Ответ на клиентский браузер. Вы можете добавить новое значение cookie и написать в браузере клиента (в соответствии с правилами перекрестных доменов) После того, как вы выполните res.send() или res.redirect() или res.render(), вы не сможете сделать это снова, в противном случае, будет нечеткая ошибка.
req = {
_startTime : Date,
app : function(req,res){},
body : {},
client : Socket,
complete : Boolean,
connection : Socket,
cookies : {},
files : {},
headers : {},
httpVersion : String,
httpVersionMajor : Number,
httpVersionMinor : Number,
method : String, // e.g. GET POST PUT DELETE
next : function next(err){},
originalUrl : String, /* e.g. /erer?param1=23¶m2=45 */
params : [],
query : {},
readable : Boolean,
res : ServerResponse,
route : Route,
signedCookies : {},
socket : Socket,
url : String /*e.g. /erer?param1=23¶m2=45 */
}
res = {
app : function(req, res) {},
chunkedEncoding: Boolean,
connection : Socket,
finished : Boolean,
output : [],
outputEncodings: [],
req : IncomingMessage,
sendDate : Boolean,
shouldkeepAlive : Boolean,
socket : Socket,
useChunkedEncdoingByDefault : Boolean,
viewCallbacks : [],
writable : Boolean
}
* req * и * res * являются формальными параметрами функции expression 'function (req, res) {. ..} ', который передается * createServer *. Они являются эффективными локальными переменными функции. * createServer * вызывается функцией, передавая значения этим переменным, которые используются функцией, например. 'res.writeHead (...)' использует значение, переданное в * res * (надеюсь, объект с методом * writeHead *). – RobG
Когда вы вызываете «http.createServer», вы передаете анонимную функцию, которая будет использоваться методом «createServer». Ядро узла имеет сложную задачу, управление соединениями и создание объектов «запроса» и «ответа», которые вы используете в своей анонимной функции. –
Привет, люди, Спасибо, что ответили. Я считаю, что получаю то, что res и req находятся внутри самого определения функции. Сложный бит заключается в том, что функция, не имеющая имени (анонимного), вложенного внутри другой функции (или метода), вызывается из другого места и возвращает информацию в это место вызова. – neil