Javascript / Node.js импорт HTML-файла

#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();