【发布时间】:2018-06-18 22:37:42
【问题描述】:
我正在尝试将来自 API 端点的请求写入具有节点包 express 和 file-system 的文件。但是,当我运行 writeFile 函数时,文件夹或 txt 文件都不会写入文件系统。
我已经检查了文件夹权限,它们似乎设置正确。此外,错误回调似乎在控制台日志中返回 null。
服务器代码
app.use((req, res, next) => { // Enable Cross-Origin Resource Sharing (CORS)
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, content-type, Accept, Authorization, x-api-key")
next()
})
app.post("/node/api/mssql/post-order-header", (req, res, next) => {
if(valid) write.orderHeader(req, res)
})
模块代码
let fs = require("fs")
...
exports.orderHeader = (req, res, next) => {
fs.writeFile('_log/receipts/test.txt', JSON.stringify(req.body), (err) => {
if (err) throw err;
console.log('The file has been saved!');
})
})
错误
C:\...\fs\write_order.js:17
if (err) 抛出错误;
错误:ENOENT:没有这样的文件或目录,打开 'C:...\test-folder\test.txt'
这可能与Node有关吗? (每次都想新建一个文件)
【问题讨论】:
-
尝试将
writeFile的参数更改为:'./test-folder/test.txt', JSON.stringify(req.body), 'utf8', err => console.log(err)) -
为什么不直接使用原生的
fs模块呢?另外,如果你的模块在 node_modules 目录中,你应该只需要在不提供路径的情况下执行const fs = require('file-system')。 -
这应该是
let fs = require('file-system'),但我认为这不会解决您的问题 -
@m_callens 好的。试过这个。仍然没有写任何东西。
标签: javascript node.js express fs