使用 fs 模块读取文件并保留原始文件
Read file with fs module and keep the original file
我实际上正在开发一个发送邮件的 NodeJS API。
index.handlebars
是我每次需要发送电子邮件时都想使用的模板
所以我使用 Node File Systeme (fs) 到 readFileSync()
然后 replace()
数据需要在向用户发送电子邮件之前。
这里有一个例子:
const readMe = fs.readFileSync('./mails/index.handlebars', 'utf8', (error, data) => {
if (error) {
console.log(error);
} else {
data = data.toString('utf8').replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
return data
}
})
console.log(readMe);
首先,有时 replace()
对我不起作用,什么也没发生。不知道为什么。
但当它起作用时,我的目标是不覆盖 index.handlebars
。我的意思是 replace()
所有的东西然后发送,但保持 index.handlebars
和 replace()
之前一样。
可能吗?
非常感谢。
fs模块提供了fs.readFile(异步读取文件,回调)和fs.readFileSync(同步读取,不需要回调)
您目前在尝试使用回调进行同步读取时混淆了 2 个签名。
要使用 readFileSync(同步),您应该
// synchronous without callback
const data = fs.readFileSync('./mails/index.handlebars', { encoding: 'utf8', flag: 'r' })
const replaced = data.replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
console.log(replaced);
对于 readFile(异步),您使用回调
// asynchronous with callback
fs.readFile('./mails/index.handlebars', 'utf8', (error, data) => {
if (error) {
console.log(error);
} else {
data = data.replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
// perform necessary operations on data
console.log(data);
}
})
我实际上正在开发一个发送邮件的 NodeJS API。
index.handlebars
是我每次需要发送电子邮件时都想使用的模板
所以我使用 Node File Systeme (fs) 到 readFileSync()
然后 replace()
数据需要在向用户发送电子邮件之前。
这里有一个例子:
const readMe = fs.readFileSync('./mails/index.handlebars', 'utf8', (error, data) => {
if (error) {
console.log(error);
} else {
data = data.toString('utf8').replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
return data
}
})
console.log(readMe);
首先,有时 replace()
对我不起作用,什么也没发生。不知道为什么。
但当它起作用时,我的目标是不覆盖 index.handlebars
。我的意思是 replace()
所有的东西然后发送,但保持 index.handlebars
和 replace()
之前一样。
可能吗?
非常感谢。
fs模块提供了fs.readFile(异步读取文件,回调)和fs.readFileSync(同步读取,不需要回调)
您目前在尝试使用回调进行同步读取时混淆了 2 个签名。
要使用 readFileSync(同步),您应该
// synchronous without callback
const data = fs.readFileSync('./mails/index.handlebars', { encoding: 'utf8', flag: 'r' })
const replaced = data.replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
console.log(replaced);
对于 readFile(异步),您使用回调
// asynchronous with callback
fs.readFile('./mails/index.handlebars', 'utf8', (error, data) => {
if (error) {
console.log(error);
} else {
data = data.replace('{%CONFIRMATION%}', "SELLER AS VALIDATE YOUR ORDER")
// perform necessary operations on data
console.log(data);
}
})