我有这样一个简单的代码:
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)
...
}
})();
此处池变得未定义。
你能告诉我这是为什么吗?
最佳答案
请注意,您可以访问 init()
,因为您是通过 module.exports.init
导出它的。但是您的 var pool
永远不会导出,这样它对于 one_api
模块来说保持“私有(private)”。您必须导出它:module.exports.pool
。
关于javascript - 为什么我不能引用模块外部的属性集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54825321/