Ich bin mir nicht sicher zu verstehen, was Sie mit "wenn ich ein Exsting Glas mit Cookies drin habe", aber hier ist, wie ich dauerhafte Cookies mit Nodejs verwalten.
Um Fehler mit FileCookieStore
zu vermeiden, füge ich ein Stück Code, um die JSON-Datei zu erstellen, wenn es nicht existiert. Die Datei kann leer sein, solange es existiert:
if(!fs.existsSync(cookiepath)){
fs.closeSync(fs.openSync(cookiepath, 'w'));
}
Nun, wenn man genau auf den Code FileCookieStore
schauen, sehen Sie, es ruft die saveToFile
Methode zu jeder Zeit gibt es eine Änderung in den Cookies. Dies bedeutet, dass die JSON-Datei immer den Status der Cookies widerspiegelt, wenn ein FileCookieStore
Objekt an das Modul request
übergeben wird (unter Verwendung der jar
Option als the request documentation). Hier
ist ein komplettes Beispiel:
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);
Um neu zu starten, löschen Sie einfach die Datei cookipath
.
Hoffe, das hilft.
Ah, die Information, die mir hier fehlte, war das Anfrage-Modul, das den Dateispeicher aktualisiert, wenn sich Cookies ändern. Ich dachte, ich müsste die Cookies manuell in die Datei exportieren. Danke für die Erklärung und das Beispiel. –