Экспорт Cookie Jar в JSON с запросом узла
на request
документация рассказывает об импорте файлов cookies из файла со следующим примером:
var FileCookieStore = require('tough-cookie-filestore');
// NOTE - currently the 'cookies.json' file must already exist!
var j = request.jar(new FileCookieStore('cookies.json'));
request = request.defaults({ jar : j })
request('http://www.google.com', function() {
request('http://images.google.com')
})
однако, как отмечается в комментарии, он ожидает cookies.json
уже существует. Вопрос в том, если у меня есть банка с печеньем, как я могу экспортировать ее в JSON?
1 ответов
Я не уверен, что понимаю, что вы подразумеваете под "Если у меня есть exsting банку с печеньем в нем", но вот как я управляю постоянными печеньями с nodejs.
чтобы избежать ошибок с FileCookieStore
, Я добавляю фрагмент кода для создания файла json, если он не существует. Файл может быть пустым, пока он существует:
if(!fs.existsSync(cookiepath)){
fs.closeSync(fs.openSync(cookiepath, 'w'));
}
теперь, если вы внимательно посмотрите на FileCookieStore
код, вы увидите, что он называет saveToFile
метод в любое время есть изменение в печенье. Это значит, что проходя мимо FileCookieStore
объект request
модуль (с помощью как запрос документации объясняет), файл json всегда будет отражать состояние файлов cookie.
вот пример:
var FileCookieStore = require('tough-cookie-filestore');
var request = require('request');
var fs = require("fs");
var cookiepath = "cookies.json";
// create the json file if it does not exist
if(!fs.existsSync(cookiepath)){
fs.closeSync(fs.openSync(cookiepath, 'w'));
}
// use the FileCookieStore with the request package
var jar = request.jar(new FileCookieStore(cookiepath));
request = request.defaults({ jar : jar });
// do whatever you want
request('http://www.google.com', function() {
request('http://images.google.com')
});
// the cookies in 'jar' corresponds to the cookies in cookies.json
console.log(jar);
начать заново, просто удалите .