Мое приложение в nodejs с машинописным кодом. Я использую express -почту для отправки почты
Ниже моя структура
- app.ts (на root)
- просмотры (на root)
- /mails/emailSender.ts
app.ts
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
emailSender.ts // emailSender вызывает mailer.ts с помощью функции mailer.sendCopy
mailer.sendCopy('emailStructure/registered_email',
mailOptions, // this is correctly constructed in a separate logic
function(resp_type: any, resp: any) {
if (resp_type == 'err') {
console.log(resp);
}
});
mailer.ts
var express = require('express');
var mailer = require('express-mailer');
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'ejs');
exports.sendCopy = function(template, mailOptions, callback) {
app.mailer.send(template, mailOptions, function(err, message) {
if (err) {
callback('err', err);
return;
} else {
callback('success', message);
}
});
};
Несмотря на то, что путь к представлениям правильный, я по-прежнему появляется ошибка ниже
"Failed to lookup view "/registered_email" in views directory "\\my Solution path routing to Views""
Я пытался изменить пути маршрутизации, перемещая каталоги в другой путь, но здесь путь кажется правильным. Что я не могу найти, так это то, почему express не может прочитать эти представления внутри emailStructure directory .
Я попытался удалить
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'ejs');
из mailer.ts, но это снова дает мне исключение: Двигатель или расширение не определены.
Со ссылкой на ниже строки ссылки 561 функция визуализации im также получает renderOptions.cache как false и, следовательно, выполнение не завершается.
renderOptions в приложении. js in express модуль