将参数传递给nodejs中的module.exports

时间:2016-09-05 13:33:56

标签: javascript node.js express

我有以下代码用于实现nodejs和rest api app.js

var connection = require('./database_connector');    
connection.initalized();  //guys connection is i want to pass a connection varible to the model
var peson_model = require('./models/person_model')(connection); //this not working
var app = express();
app.use(bodyparser.urlencoded({extended: true}));
app.use(bodyparser.json());
app.get('/persons/', function(req, res) {
    person_model.get(res); // retrive get results
});
// .............express port and listen

person_model.js是一个应该基于http动词检索的模型类。例如person.get检索以下内容,目前只有一个方法如下。

function Person(connection) {
    this.get = function (res) {
        connection.acquire(function(err, con) {
            con.query('select * from person limit 3', function(err, result) {
                con.release();
                console.log("get called");
                res.send(result);
            });
        });
    };
}
// ** I want to pass a connection variable to the model
module.exports = new Person(connection);

在上面的代码中,var peson_model = require('./models/person_model')(connection);无效。

如何传递连接变量并导出模块?

1 个答案:

答案 0 :(得分:3)

如果从导出中返回一个函数,则可以传递参数。

module.exports = function(connection) {
    return new Person(connection);
};

您需要设置this.connection并在功能中使用它。