Привет, ребята (Happy new year btw :))! Я пытаюсь выполнить Node.js и Express.js, и я столкнулся с некоторыми трудностями при обработке нескольких запросов.Node.js Post Request - Keep Session Alive
Вот проблема: мне нужно получить данные с внешнего веб-сайта. Для этого мне нужно войти в систему, и у меня есть поддельная/зомби-учетная запись. Я пытаюсь сначала отправить запрос POST с моим именем пользователя и паролем, а затем отправить запрос GET для доступа к определенному контенту. Проблема в том, что даже если запрос POST успешно выполнен, когда я делаю запрос GET, я больше не в системе. Я делал то же самое с Gem Mechanize в Ruby, но, вероятно, он должен сделать некоторые неявный материал, который заставил весь процесс работать.
Для выполнения запросов, я использую модуль запроса (https://github.com/request/request). И, вот код:
var zombie = require('request').defaults({
headers: { connection: "keep-alive" },
pool: {maxSockets: 1},
});
var connect = function(req, res, next){
zombie.post({
url: "target.com",
form: {
user: "zombie",
pass: "password"}
}, function(err, response, body){
req.connected = true;
next();
});
}
var information = function(req, res, next){
if(req.connected){
zombie.get({
url: "target.com",
qs: {
page: "targetPage",
search: req.params.search}
}, function(err, response, body){
res.send(body);
})
}
}
И от контроллера я пытаюсь подключиться, а затем получить доступ к информации.
var router = require('express').Router();
var zombie = require('./../middleware/Zombie');
router.get('/search/:search', zombie.connect, zombie.information);
Большое спасибо. Я смотрел на свойство keep-alive моего http-заголовка, но это было просто неважно. 'require ('request'). Default ({jar: true})' было достаточно (с жестким cookie), чтобы сохранить сеанс от запроса к другому. – KtorZ