Я работаю над созданием приложения NodeJS, которое сочетает в себе функциональность REST API с сохранением MongoDB CRUD.Я довольно новичок в NodeJS.
Сейчас мне удалось подключиться к базе данных и выяснить, что остальная часть моего кода принадлежит внутри обратного вызова - т.е. обрабатывать REST-запрос только после того, как БД запущена иavailable.
В этом случае я сталкиваюсь с проблемой понимания того, как «присоединить» «клиента» (из mongodb.connect) к «запросу».Мне нужно как-то сделать его доступным в других файлах, потому что я хочу хранить свои маршруты отдельно в качестве лучшей практики.
Тот же вопрос относится к любым переменным в основном файле server.js, которые мне нужно иметь для возможностидоступ в мои модули.Вот соответствующий код:
//server.js
const express = require('express')
const mongodb = require('mongodb')
const bodyParser = require('body-parser')
const routes = require('./routes')
const url = 'mongodb://localhost:27017/testDB'
let app = express();
app.use(logger('dev'))
app.use(bodyParser.json())
mongodb.connect(url, {useNewUrlParser:true},(error, dbClient) => {
if (error) {
console.log(`Error: ${error}`)
process.exit(1)
}
//connected
console.log(`Connected to mongoDB`)
//what do I do here to make sure my routes can access dbClient?
app.get('/accounts', routes.getAccounts(req, res) )
app.listen(3000)
})
//./routes/index.js
const bodyParser = require('body-parser')
const errorhandler = require('errorhandler')
const mongodb = require('mongodb')
const logger = require('morgan')
module.exports = {
getAccounts: (req, res) => {
console.log("in getAccounts")
//how can I use dbClient in here?
}
}
Заранее благодарим за помощь!Приношу свои извинения, если что-либо о моем посте не соответствует нормальным стандартам, я здесь новенький!Вся критика оценена, кодирование и прочее!