我无法访问我在app.js中导出的功能
在app.js文件中:
function getConnection() {
return mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'Academind'
})
}
module.exports = {
getConnection: function () {
return getConnection()
}
}
在我的orders.js文件中:
const app = require('../../app')
function getConnection() {
return app.getConnection() // doesn't work
}
我收到此错误:
app.getConnection不是函数
答案 0 :(得分:0)
问题与您如何导出getConnection(...
)方法有关,应将其更改为以下内容以解决问题:
app.js
function getConnection() {
return mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'Academind'
})
}
module.exports = {
getConnection: getConnection
}
然后在需要它的模块中使用它,如下所示:
orders.js
const app = require('../../app')
const getConnection = app.getConnection
// get your database connection string
getConnection()
以前,您正在创建一个匿名函数,该函数称为getConnection()
函数,该函数返回数据库连接字符串值而不是该函数。这就是为什么您看到以下错误的原因:
app.getConnection不是函数
因为它是包含数据库连接详细信息的字符串,而不是函数。
现在,我们正在将您的getConnection()
函数导出为一个适当地称为getConnection()
的函数,以便在其他模块中使用。
希望有帮助!
答案 1 :(得分:-1)
您不需要通过函数内部的return函数。
function getConnection() {
return mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'Academind'
})
}
module.exports = {
getConnection: getConnection
}
您只需要传递函数的引用即可。