我试图在发送电子邮件时使用电子邮件模板。这是我的项目结构。
project-name
client
server
email-templates
confirm-email.html
controllers
accounts.js (currently here)我正在像这样读取模板文件。
fs.readFile('../email-templates/confirm-email.html', async (error, html) => {
// do some stuff
})我认为已经进入了一条正确的道路。但我还是犯了个错误。
错误: ENOENT:没有这样的文件或目录
我已经核对了其他问题。但是他们使用的是变量__dirname,因为我使用的是ES6模块,我没有访问该变量的权限。
// package.json
"type": "module",有什么建议吗?
发布于 2021-05-26 08:45:40
尝试在尝试访问文件时使用path模块解析文件的绝对路径。
fs.readFile(path.resolve(__dirname, '../email-templates/confirm-email.html'), function(err, html) {// do some stuff})发布于 2021-05-26 09:34:15
我无法访问__dirname,因为我使用的是ES6模块。我使用了path.resolve()来修复错误。
fs.readFile(
path.join(path.resolve(), 'email-templates', 'confirm-email.html'),
'utf8',
(error, html) => {
// do some stuff
}
);若要访问__dirname变量,请执行以下操作:
const __dirname = path.resolve();https://stackoverflow.com/questions/67701382
复制相似问题