typescript writeFile找不到目录

qgelzfjb  于 2022-11-26  发布在  TypeScript
关注(0)|答案(2)|浏览(204)

我正在练习一个读写文件的简单应用程序。我正在使用**“fs/promises”中的writeFile*
当我用正确的字符串导入文件时,我得到了所需的文件

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")
}

我不明白为什么一个函数得到路径字符串而另一个函数没有

92vpleto

92vpleto1#

这是因为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")
}
vlju58qv

vlju58qv2#

fs.writeFile(dir, data, err => {
  if (err) {
    console.log("File not saved!   ", err);
    return err;
  } else {
    console.log("File saved!");
    return 200;
  }
});

相关问题