#javascript #node.js #nodemailer
#javascript #node.js #nodemailer
Вопрос:
Я делаю node.js сервер, который отправляет электронные письма по запросу. Переменная «output» — это то, что я хочу отправить по электронной почте. Когда я использую встроенный html, он работает нормально, однако вместо этого я хочу импортировать полный HTML-файл.
Я пытался использовать <object> и <link> для импорта «file.html » который находится в той же папке, что и app.js , но оба отображаются в виде белой страницы.
app.post("/send", (req, res) => {
console.log("sending email...");
const email = req.body.data.email;
const customerId = req.body.data.customer_id;
const orderId = req.body.data.order_id;
//const output = `<h3>Hi, this works</h3>` // WORKS
//const output = `<object type="text/html" data="file.html"></object>`; // Doesn't work
const output = `<link href="file.html" rel="import" />`; // Doesn't work
;
Помощь очень ценится. При необходимости я могу предоставить больше кода.
Комментарии:
1. Считайте файл в память и сохраняйте его в переменной. HTML внутри вашей выходной переменной не обрабатывается, поэтому ваш файл никогда не включается.
2. @t348575 О, это имеет смысл, я не настолько хорошо разбираюсь в Node.js тем не менее, не могли бы вы показать, как это сделать, или указать мне правильное направление? Буду ли я использовать require(‘..’) для этого?
Ответ №1:
Вставьте это вне вашего метода .post, чтобы он запускался один раз при запуске вашей программы и заполнялся вывод вместо чтения файла при каждом вызове вашего метода .post или .get
const fs = require('fs');
const output = fs.readFileSync('/path/to/file.html').toString();