在快速路由中从外部文件调用方法

时间:2016-07-27 14:44:45

标签: express

嗨,我是表达新手。我有一个管理员路线,我希望管理员更新记录等。我不想写代码到路由下的更新记录而不是我只是传递一些从db获取记录或更新它们的函数或对象。我使用passportjs进行身份验证。目前我的路线看起来像这样 -

app.get('/admin', function(req, res){

    res.render('admin', {
        title: "Welcome Member_name ",
        user: req.user
    });
});

所以我为所有管理操作创建了另一个js文件。它在root / controller / admin.js之下,看起来像这样 -

var     mysql       = require('mysql'),
    dbconfig    = require('../config/database'),
    connection  = mysql.createConnection(dbconfig.connection);

    module.exports = {


    }

我所追求的是编写一些函数,它将从数据库中获取一些数据并返回对象,以便我可以将对象传递给我的路径并从那里传递给视图。任何人都可以帮助我PLZ?谢谢。另外,如果你知道学习expressjs的最佳实践,请告诉我。非常感谢提前。干杯。

1 个答案:

答案 0 :(得分:1)

我会尝试为你回答这个问题,尽管你的问题有点混乱。如果我是对的,你想从你的路线中调用模块中的方法吗?

我们假设您的模块文件名为admin.js,用于以下示例。这是您创建在模块外部可访问的方法的方法。

admin.js

var mysql       = require('mysql'),
    dbconfig    = require('../config/database'),
    connection  = mysql.createConnection(dbconfig.connection);

module.exports = {};

module.exports.retrieveData = function() {
    //Data retrieval code here.
};

然后在您的路线文件中,我们为示例说routes.js。这就是你调用方法的方法。

routes.js

var admin = require('./admin.js') //Remembering to require the module!

database.retrieveData();

然后,您将通过retrieveData()方法中的参数传递查询。