【问题标题】:var from controller to view via app.js从控制器到通过 app.js 查看的 var
【发布时间】:2016-03-23 20:44:02
【问题描述】:

我实际上是在用 expressjs 学习 node.js,我有一些具有结构的项目:

控制器/Home.jsviews/index.ejs

在我的根目录中,我有 app.js 和代码:

    app.all('/', function(req, res, next) {
        Home.index();
        res.render('index', {
            title: 'Home'
        });
    });

...但是我想从我的控制器文件 (Home.js) 和函数 index 中发送标题,你能解释一下怎么做吗?

最好的问候。

【问题讨论】:

  • 您的要求不明确。解释清楚一点
  • @Darshan,我想从控制器 Home.js (controller/Home.js) 渲染我的视图(*.ejs 文件)。
  • 将 res (response) 对象传递给 Home.index 函数,如 Home.index(res) 并从那里调用 render。
  • 你可以在 home.js 中使用exports.title 并在 app.js 中 require 和访问
  • @ZeeshanHassanMemon 你能详细解释一下吗?我应该在 Home.js 中添加什么以及在 app.js 中添加什么来读取这个 var?

标签: node.js express ejs


【解决方案1】:

选项 1:

从 home.js 文件中公开标题并在 app.js 中以如下方式访问它:

var home = require('home_path');

app.all('/', function(req, res, next) {
        res.render('index', {
            title: home.title
        });
    });

选项 2:

创建额外的 some_file.js 获取 title 并传递给 some_handler_function 作为:

var some_file = require('path_to_some_file');

app.all('/', some_handler_function);

可用节点作弊:

如需完整代码,请在ejs_variable_access 运行node server 然后npm install 获取工作节点作弊。

【讨论】:

  • 谢谢,但是如何在我的 Home.js 文件中导出标题 var?或者也许我可以在我的控制器中渲染视图?在这个选项中,我将只在“app.all”中创建 Home.index()。
  • 我已经创建了 node-cheat 供您访问它Github ejs_variable_access
  • 谢谢你,现在它对我有用。我有第二个问题,在我用 PHP (MVC) 创建应用程序之前,MVC 的结构仍然在 Node.js 中使用,还是应该让它有所不同?问候!
  • 很好,请标记答案正确并回购。是的,根据项目的性质,MVC 非常适合,它使事情保持清晰和分离。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
相关资源
最近更新 更多