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

标签 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); 不起作用。

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

最佳答案

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

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

您需要设置 this.connection 并在您的函数中使用它。

关于javascript - 将参数传递给nodejs中的module.exports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331788/

相关文章:

javascript - 防止使用 jquery 在不使用 onclick 函数的情况下检查单选按钮

javascript - 过滤掉对象成员的好习惯用法(javascript)

javascript - Node 路由器.delete 函数返回 404 Not Found?

javascript - Props 在我的 Vue.js 应用程序中不起作用

node.js - 使用 'supertest' 进行测试期间的 Express 中间件控制台输出

javascript - 如何使用 javascript 验证多个文本区域

javascript - 在 Blackberry 手机上使用 JavaScript 操作 DOM

javascript - URL 打开新窗口调整大小

javascript - Mongoose - Model.deleteOne() 正在删除整个集合而不是单个文档

javascript - Sequelize 如何正确创建具有约束的用户数据?