如何访问mongodb,express中控制器中的集合?我在mongodb文档db.getCollection("countries");
中找到了如何将名称数据库db
导入控制器?
服务器
const express = require('express');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config();
const app = express();
// Connect to our Database and handle an bad connections
mongoose
.connect(process.env.DATABASE, {
useNewUrlParser: true,
useFindAndModify: false,
useUnifiedTopology: true,
useCreateIndex: true
})
.then(() => console.log("DB server connect"))
.catch(error => console.log("DB error", error))
const countriesRoutes = require('./routes/countries');
app.use(morgan('dev'));
app.use(bodyParser.json());
//middleware
app.use('/api', countriesRoutes);
const port = process.env.PORT || 8000;
const server = app.listen(port, () => {
console.log(`connect on the port ${port} - ${process.env.NODE_ENV}`);
});
控制器/国家
module.exports.read = (req, res) => {
const countries = db.getCollection("countries");
console.log(countries)
if(err || !countries) {
return res.status(400).json({
error: "Countries not found"
})
}
res.json(countries);
};
航线/国家
const express = require('express');
const router = express.Router();
const {read} = require('../controllers/countries');
router.get('/countries', read);
module.exports = router;
您可以使用createConnection
module.exports.db = mongoose
.createConnection(process.env.DATABASE, {
useNewUrlParser: true,
useFindAndModify: false,
useUnifiedTopology: true,
useCreateIndex: true
})
并将其导入您的控制器
我还会创建一个名为connection.js
的单独文件,并将其写入其中,这样你就不会膨胀你的主文件
创建一个文件db.js并为Countrys 创建mongoose模式模型
const config = require('../../config/config.json');
const mongoose = require('mongoose');
const connectionOptions = { useCreateIndex: true, useNewUrlParser: true,
useUnifiedTopology: true, useFindAndModify: false };
mongoose.connect(process.env.MONGODB_URI || config.connectionString, connectionOptions);
mongoose.Promise = global.Promise;
module.exports = {
Countries: require('./models/countries.model'),
}
现在在您的控制器中导入数据库文件并简单地
const db = require('./db');
const Countries = db.Countries;
const response = await Countries.find({});