我正在练习一个简单的应用程序,它可以读写一个文件。我正在使用来自writeFile的“fs/承诺”
当我用正确的字符串导入文件时,就会得到所需的文件。
const content: Employe_T_nodel[] = require('../databace/employees.json')但是当我试图写入文件时,我会得到一个错误:没有这样的文件或目录,打开'D:.
这是我使用的代码。请注意,我使用的字符串完全相同。
async function saveAllEmployeesAsync(employeesArr: Employe_T_nodel[]) {
const content: string = JSON.stringify(employeesArr)
await writeFile('../databace/employees.json', content)
return console.log("Employees saved sucsessfuly")
}我不明白为什么一个函数得到路径字符串,而另一个函数没有
发布于 2022-11-07 08:58:00
这是因为require()将路径视为相对于当前文件的路径,而fs.writeFile则将路径视为相对于启动Node.js进程的路径。
如果您想要相同的行为,可以使用path.resolve()
async function saveAllEmployeesAsync(employeesArr: Employe_T_nodel[]) {
const content: string = JSON.stringify(employeesArr)
await writeFile(path.resolve(__dirname, '../databace/employees.json'), content)
return console.log("Employees saved sucsessfuly")
}发布于 2022-11-07 09:47:19
fs.writeFile(dir, data, err => {
if (err) {
console.log("File not saved! ", err);
return err;
} else {
console.log("File saved!");
return 200;
}
});https://stackoverflow.com/questions/74343919
复制相似问题