我正在编写一个使用 async/await 并承诺将一些 JSON 写入文件然后呈现 pug 模板的方法。但由于某种原因,编写 JSON 的代码与 res.render() 方法发生冲突,导致浏览器无法连接到服务器。
奇怪的是,我在控制台中没有收到任何错误,并且 JSON 文件按预期生成——页面只是不会呈现。
我正在使用 fs-extra 模块写入磁盘。
const fse = require('fs-extra');
exports.testJSON = async (req, res) => {
await fse.writeJson('./data/foo.json', {Key: '123'})
.then(function(){
console.log('JSON updated.')
})
.catch(function(err){
console.error(err);
});
res.render('frontpage', {
title: 'JSON Updated...',
});
}
我开始认为有一些基本的东西我没有得到与承诺、写入磁盘和/或表达 res.render 方法的冲突。值得注意的是 res.send() 工作正常。
我还尝试了一个不同的 NPM 模块来编写文件(write-json-file)。它给了我完全相同的问题。
更新:所以我是个白痴。该问题与 Express og JSON 文件无关。这与我正在运行 nodemon 以在文件更改时自动重新启动服务器这一事实有关。因此,一旦保存了 JSON 文件,服务器就会重新启动,从而停止呈现页面的过程。无论如何,向那些试图帮助我的很棒的人道歉。你仍然帮助我解决了这个问题,所以我真的很感激!