javascript - 文件系统不想在 Node.js 中写入特定文件
问题描述
console.log(`./settings/${mob.serverName}/${mob.channelName}.json`); // ./settings/Mobbot Test Server/mobtimusprime.json
fsp.writeFile(`./settings/${mob.serverName}/newfile.json`, settings); // actually creates the right file, in the right path
console.log(fs.existsSync(`./settings/${mob.serverName}`)); // true
fsp.writeFile(`./settings/${mob.serverName}/${mob.channelName}.json`, settings); // does nothing, doesn't throw an error, just does absolutely nothing.
我不知道发生了什么,我已经多次检查拼写,但一切似乎都应该工作,但没有。
附加信息:node -v // v14.2.0
windows 10
顺便提一句:
const fsp = require('fs').promises;
万一这不明显。
编辑:这更像是我想要做的事情(当然,显示问题所需的最少代码)。
const myFunc = async (settings) => {
try {
return await fsp.writeFile(`./settings/${mob.serverName}/${mob.channelName}.json`, settings);
} catch (e) {
console.log(e)
}
}
编辑2:
更多上下文:
const settingsUpdater = async (settings) => {
try {
return await fsp.writeFile(`./settings/${mob.serverName}/${mob.channelName}.json`, settings);
} catch (e) {
console.log(e)
}
}
const callingFunction = async (...args) {
try {
await settingsUpdater(settings);
const { pieceOfUpdatedSettings } = require(`../settings/${mob.serverName}/${mob.channelName}.json`);
anotherFunction(pieceOfUpdatedSettings);
} catch (e) {
console.log(e)
}
}
解决方案
类似的东西?
const fs = require('fs');
const path = './path/to/file'
const data = 'yourdata'
fs.appendFile(path, data, (err) => {
if err console.log(err);
});
fs.appendFile()
如果不存在,将创建一个文件,或者重写一个文件。我在这里使用了回调,但您也可以使用同步函数fs
,而不是异步函数,如下所示:
try {
fs.appendFileSync(path, data);
} catch (err) {
console.log(err);
}
推荐阅读
- c++ - 无效的用户定义转换:C++ 错误
- swift - 如何从不同的类(Swift)引用自定义单元格内的插座
- react-native - 我无法在 React Native 中垂直对齐我的登录表单
- javascript - “DataTables 警告:无效的 JSON 响应”和“错误:未找到图形容器元素”
- javascript - 查找在数组中出现奇数次的 int
- javascript - Php - 使星号之间的文本变为粗体
- algorithm - 这可以近似吗?
- python-3.x - XPath 获取类中的一组特定元素
- angular - 错误类型错误:无法读取未定义的属性“getMonth”
- jquery - LayerSlider 启动触发器