如何在没有node.js / express应用程序中的views目录的情况下将res.render渲染到pug文件?

时间:2018-07-10 07:12:26

标签: node.js express pug

我收到一个已经具有目录结构的项目。 在此目录结构中,没有“视图”目录(例如在普通的node.js / express应用程序中?)。

请参见下面的结构:

- site
  - config
      - assets
          default.js
          development.js
      - env
          default.js
          development.js
      - lib
          app.js
          express.js
          logger.js
          pug-routes.js
          socket.io.js
      config.js
  - modules
      - core
          - client
              - app
                  config.js
                  init.js
              - config
                  core.client.route-filter.js
                  core.client.routes.js
                  core-admin.client.routes.js
              - controllers
                  header.client.controller.js
                  home.client.controller.js
              - css
              - directives
              - services
              - views
          - server
              - controllers
                  core.server.controller.js
              - routes
                  core.server.routes.js
              - views
                  layout.server.view.html
      - website
          - client
              - css
              - img
              - js   
          - server
              contact.pug
              homescreen.pug
  - node_modules
  - public
  - scripts
  package.json
  server.js

联系表上有一个邮件功能。一切正常。 但是,当邮件功能成功或失败时,我想获取包含一些信息的模式。模态已经创建。 在以前的应用程序中,我是这样做的:

if (err) {
      console.log(err);
      res.render('homescreen', {
        feedback:
        '<span lang="en">Your message cannot be sent.</span>'
      });
    } else {
      console.log('sended');
      res.render('homescreen', {
        feedback:
        '<span lang="en">Your message has been sent.</span>'
      });
    }

然后在“ homescreen.pug”上:

if feedback
     include functions/modal
     +createModal({htmlClass: 'feedbackModal', closable: true})
         .text-center!=feedback

但是res.render无法正常工作。 res.redirect工作时,它总是会出现错误。 它在res.render上显示此错误:

  

错误:无法在视图目录“ C:\ Users \ name \ Desktop \ the-new-website”中查找视图“主屏幕”

但是在我的整个项目中没有'views'目录。

这是express.js中的内容:

module.exports.initViewEngine = function (app) {
    app.engine('server.view.html', hbs.express4({
        extname: '.server.view.html'
    }));
    app.set('view engine', 'server.view.html');
    app.set('views', path.resolve('./'));

当我将app.set('views'...)更改为另一条路径时,它就像是一个无限循环的重定向。

重定向的工作方式如下:

res.redirect('/static/index');

然后我在pug-routes.js中创建了这样的代码:

module.exports = {
  '/index': {
    template: 'modules/website/server/homescreen.pug'
  }
}

那我该怎么做,然后用消息(反馈)重新渲染到homescreen.pug。

0 个答案:

没有答案