【问题标题】:How to get a variable defined in index.js from within a controller?如何从控制器中获取 index.js 中定义的变量?
【发布时间】:2014-07-21 13:12:33
【问题描述】:

我正在测试 forms-angular (http://www.forms-angular.org/)。

我在index.js 文件中定义了一个DataFormHandler 变量。而且我还需要在我的控制器中获取这个变量。我怎样才能得到它?这个设置器不起作用app.set("formHandler", DataFormHandler)

代码如下:

index.js

'use strict';

var formsAngular = require('forms-angular');  // require formsAngular

var kraken      = require('kraken-js'),
        app     = require('express')(),
        options = {
            onconfig: function (config, next) {
                //any config setup/overrides here
                next(null, config);
            }
        },
        port    = process.env.PORT || 8000;


// Here I initialize FormHandler. It requires the app, so I initialize it here, in index.js
// HOW TO GET THIS VAR IN CONTROLLERS?
var DataFormHandler = new (formsAngular)(app);
app.set("fh", DataFormHandler);  // THIS DOESN'T WORK. UNDEFINED in controller

app.use(kraken(options));


app.listen(port, function (err) {
    console.log('[%s] Listening on http://localhost:%d', app.settings.env, port);
});

二传手app.set("fh", DataFormHandler) 不起作用。当我尝试从控制器中获取fh 时,它是undefined

app\controllers\index.js

'use strict';

var UserModel = require('../models/user');

module.exports = function (router) {

    var user = new UserModel();

    router.get('/', function (req, res) {

        var DataFormHandler = req.app.get("fh");
        DataFormHandler.addResource('user', UserModel);

        console.log("DataFormHandler", DataFormHandler);  // undefined

        var model = {
            hello: "Hello"
        }

        res.render('index', model);
    });
};

如何在控制器中获取变量?

【问题讨论】:

    标签: javascript angularjs express kraken.js


    【解决方案1】:

    我找到了一种可行的解决方案。但不确定它是否正确。

    代替

    app.set(key, value)
    

    这不行,我用

    app.locals.key = value
    

    由于某种原因有效。

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 2020-05-08
      • 2014-11-27
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多