简体   繁体   English

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

[英]NodeJs how to pass variable into export function

I have NodeJs restful api made by tutorial. 我有NodeJs restful api由教程制作。 And in my endpoint I want to pass export function. 在我的端点我想传递导出功能。 For example: 例如:

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

But I want to do it like this: 但我想这样做:

// 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) {...}
}

However, my connection is not available in example.js. 但是,我的connection在example.js中不可用。 How can I pass it? 我怎么能通过呢?

Something like this might help: 这样的事情可能会有所帮助:

// 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) {...}
    }
}

Bind example to create example.create.bind(example,connections) 绑定示例以创建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) {...}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM