访问mongodb、express中控制器中的集合



如何访问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({});

相关内容

最新更新