2017-02-15 38 views
0

Недавно я научился обрабатывать данные рендеринга. Но у меня возникли проблемы с отправкой данных в файл ejs в node.js. Я хотел использовать отправленные данные для создания моей html-страницы с серверной стороны с встроенным javascript (или нефритом). Поэтому в моем коде я сохраняю отправленные данные в моем файле, он работает очень хорошо. Но проблема в том, что полученные данные остаются такими же, как и в случае, хотя файл изменен. Я думаю, что данные меняются только один раз, когда я запускаю сервер, потому что моя страница изменяется при повторном запуске сервера. Пожалуйста, поделитесь своими трюками, чтобы преодолеть такие проблемы.Как сохранить данные рендеринга каждый раз после ajax-сообщения?

`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' считывает файл один раз и кэширует его. Вместо этого используйте 'fs.readFile'. – Lyth

ответ

0

Модули кэшируются после первого раза, когда они загружаются. См. 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

ВЕЛИКОЕ, вот и все. Огромное спасибо. –