我有一个简单的代码:
app.js
var pool=require('.database.js')
var oneApi=require('./api/one_api.js')
oneApi.init(pool)
one_api.js
var pool
(function() {
module.exports.init=function (conn) {
pool=conn
}
module.exports.some_call = async (irrelevant, params) => {
...
var queryResult=await pool.query("SELECT * FROM Something)
...
}
})();
哪个工作正常。但是,我想简化一下:
app.js
var pool=require('.database.js')
var oneApi=require('./api/one_api.js')
oneApi.pool=pool
one_api.js
(function() {
module.exports.some_call = async (irrelevant, params) => {
...
var queryResult=await pool.query("SELECT * FROM Something)
...
}
})();
这里的池变得不确定。
你能告诉我为什么吗?
答案 0 :(得分:0)
请注意,您可以访问init()
,因为您是通过module.exports.init
导出它的。但是您的var pool
从未导出,因此对于one_api
模块,它保持“私有”状态。您必须将其导出:module.exports.pool
。