Ich versuche derzeit, meine Middeware JSON-Daten in eine Datei schreiben, nachdem angemeldet ist. Mein Problem ist, dass, wenn ich die Funktion ausführen, nichts in die Datei geschrieben noch in der Konsole ausgegeben wird.NodeJS schreibt nicht in Datei. Middleware funktioniert nicht
Ich habe diese Frage als Beispiel Example 1 verwendet, aber immer noch nichts funktioniert. Hier
ist der Middleware-Teil meines NodeJS Skript:
function isLoggedIn(req, res, next) {
dbx.accounts.findOne(function(err, info){
console.log(JSON.stringify(info.username));
return info;
var xx = info.username;
var date = new Date();
console.log(JSON.stringify(date));
var obj = {
users: []
};
fs.readFile('logs.json', 'utf8', function readFileCallback(err, data){
console.log(JSON.stringify(obj));
obj.users.push({time: date, name: xx});
if (err){
console.log(err);
} else {
obj = JSON.parse( ); //now it an object
obj.users.push({time: date, name: xx}); //add some data
json = JSON.stringify(obj); //convert it back to json
fs.writeFileSync('logs.json', json, 'utf8', JSON.stringify(output)); // write it back
}});
});
//logs.stamps.push({id:----, timestamp:date.toString()})
console.log('here is Authenticated', req.isAuthenticated()) //prints out 'here is Authenticated' if the Passport login is successful
if (req.isAuthenticated()){
return next();
}else{
console.log("routes Print log You Cannot Log in!");
}
}
I Benutzername und Datum in die Datei zu schreiben versuchen, indem sie sie mit Mongo Abfrage zuerst: dbx.accounts.findOne(function(err, info)
Warum schreibt meine Middleware nicht wie angenommen in die JSON-Datei?
EDIT:
fs.readFile ('logs.json', 'utf8', function readFileCallback (err, Daten) {
:ich die return
Anweisung wie folgt gesetzt haben
console.log(JSON.stringify(obj));
obj.users.push({time: date, name: xx});
if (err){
console.log(err);
} else {
obj = JSON.parse( ); //now it an object
obj.users.push({time: date, name: xx}); //add some data
json = JSON.stringify(obj); //convert it back to json
return info;
fs.writeFileSync('logs.json', json, 'utf8', JSON.stringify(output)); // write it back
}});
aber es schreibt immer noch nicht in die Datei.
Sie kehren von Ihrer Funktion 'return info' zurück, bevor Sie den Code erreicht haben, der in Ihre Datei schreibt. – ricky
Ja, die Funktion endet auf * 'return' * – turmuka
Wo sollte ich es platzieren? Ich lege es einfach nach der 'if' Anweisung und es schreibt immer noch nicht. – ZombieChowder