Я начал изучать базу данных с MongoDB и Node.js не долго go, и я пытаюсь найти способ использовать Express маршруты без мес goose. Я хочу вставить данные, используя Express маршруты и чистый код, экспортирующий различные модули. Проблема в том, что я не могу написать маршруты, как показано ниже, потому что в моем индексе. js файл "db", конечно, не определен, и, очевидно, я не могу вставить данные в мой "db" вне функции "client.connect". "как с пн goose. Должен ли я связать свою базу данных в файле со всеми своими сообщениями, или есть определенный способ c? (извините за мой Engli sh, я его изучаю).
Приложение. js:
const express = require('express');
const app = express();
const expressLayouts = require('express-ejs-layouts');
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
//EJS
app.use(expressLayouts);
app.set('view engine', 'ejs');
//Styles
app.use('/public', express.static('public'));
//Bodyparser
app.use(express.urlencoded({extended: false}));
//Connect to DB
const url = 'mongodb://localhost:27017/shopping'
const dbName = 'shopping';
const client = new MongoClient(url);
client.connect((err)=>{
assert.equal(null, err);
console.log('connected to db...');
app.use('/', require('./routes/index'));
const db = client.db(dbName);
});
//Server
app.listen(3000, ()=>{console.log("Listening to port 3000")});
index. js (маршруты):
const express = require('express');
const router = express.Router();
//Get home page
router.get('/', (req, res)=>{
res.render('shop/index')
});
router.get('/posts', (req,res)=>{
res.render('posts')
});
router.post('/posts',(req,res)=>{
db.collection('users').insertOne({'name': req.name, 'password': req.password});
});
module.exports = router;