NodeJS如何将变量传递给导出函数

3

我有一个按照教程制作的NodeJs restful api。在我的端点上,我想传递导出函数。例如:

// main.js
REST_ROUTER.prototype.handleRoutes = function(router, connection, md5) {
    router.get("/create", function(req, res) {
        var query = ... 
        connection.query(query,function(err, row) {...}
    });
}

但我想要像这样做:
// main.js
var example = require('./example.js');

REST_ROUTER.prototype.handleRoutes = function(router, connection, md5) {
    router.get("/create", example.create);
}

// example.js
exports.create = function(req, res) {
    var query = ... 
    connection.query(query,function(err, row) {...}
}

然而,在example.js中我的connection不可用。我怎么传递它呢?

exports.connection.<stuff>...? - Cerbrus
@Cerbrus 你能解释一下吗? - user256968
只是猜测,不要介意我。 - Cerbrus
2个回答

3

这样的东西可能会有帮助:

// main.js
var example = require('./example.js');

REST_ROUTER.prototype.handleRoutes = function(router, connection, md5) {
    router.get("/create", example.create(connection));
}

// example.js
exports.create = function(connection) {
    return function(req, res) {
       var query = ... 
       connection.query(query,function(err, row) {...}
    }
}

1

绑定示例以创建example.create.bind(example,connections)

// main.js
var example = require('./example.js');

REST_ROUTER.prototype.handleRoutes = function(router, connection, md5) {
    router.get("/create", example.create.bind(example,connections));
}

// example.js
exports.create = function(connection, req, res) {
    var query = ... 
    connection.query(query,function(err, row) {...}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接