Ошибка: не удалось найти представление «» в каталоге представлений - Nodejs - PullRequest
0 голосов
/ 24 февраля 2020

Мое приложение в 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 модуль

...