NodeJS & Express: Невозможно получить доступ к функции вне папки - PullRequest
0 голосов
/ 22 апреля 2019

Я не могу получить доступ к функции, которую я экспортирую в 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 не является функцией

1 Ответ

0 голосов
/ 22 апреля 2019

Проблема заключается в том, как вы экспортируете свой метод 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(), для использования в других модулях.

Надеюсь, это поможет!

...