2017-02-15 9 views
0

Kürzlich habe ich gelernt, mit dem Rendern von Daten umzugehen. Aber ich habe Probleme, gesendete Daten in ejs Datei in node.js zu übertragen. Ich wollte gesendete Daten für den Aufbau meiner HTML-Seite von Server-Seite mit eingebettetem Javascript (oder Jade) verwenden. Also in meinem Code speichern ich gesendete Daten in meiner Datei, es funktioniert ziemlich gut. Das Problem ist jedoch, dass die gerenderten Daten unverändert bleiben, obwohl die Datei geändert wurde. Ich denke, dass die Daten nur einmal geändert werden, wenn ich den Server ausführe, weil sich meine Seite ändert, wenn ich den Server neu starte. Bitte teilen Sie Ihre Tricks, um diese Art von Problemen zu überwinden.Wie weiter Daten jedes Mal nach Ajax Post zu halten?

`enter code here`// ----- app.js 
app.post('/notes' , function (req , res) { 
    var fs = require('fs'); 
    var data = req.body; 
    fs.writeFile("bucket.json" , JSON.stringify(data) , "utf8" , function(){}); 
}); 
// ---- routes/bucket 
router.get('/', function(req, res, next) { 
    var data = require('bucket.json'); 
    res.render('bucket', {movies:data}); 
}); 
+0

'require' liest die Datei einmal und speichert sie. Verwenden Sie stattdessen 'fs.readFile'. – Lyth

Antwort

0

Module werden nach dem ersten Laden zwischengespeichert. Siehe https://nodejs.org/api/modules.html#modules_caching

router.get('/', function(req, res, next) { 
    fs.readFile('bucket.json', (err, data) => { 
     if(err) { 
      return next(err); 
     } 
     res.render('bucket', {movies:JSON.parese(data)}); 
    }); 
}); 
+0

GREAT, das ist es. Riesen Dank. –