为什么 Node fs.writeFile() 方法成功,但随后向浏览器发送了一个空文件?

Why is Node fs.writeFile() method successful, but an empty file is then sent to the browser?

即使服务器上的文件包含 'helloworld',以下回调函数也会向浏览器发送一个空文件:

router.get('/Download', function(req, res) {
    var fs = require('fs')
    fs.writeFile('helloworld.txt', 'helloworld');
    res.download('helloworld.txt');
})

writeFile 是异步的。 要么将其用作:

fs.writeFile('helloworld.txt', 'helloworld', function () {
    res.download('helloworld.txt');
});

或使用writeFileSync

https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback

尝试查看您的代码是否有

process.exit()

出于某种原因。如果这样做,请注释掉这个,您就可以开始了。我的版本是v8.6.0.

另请参阅: