Javascript 访问mongodb、express中控制器中的集合
如何访问mongodb express中控制器中的集合?我在mongodb文档Javascript 访问mongodb、express中控制器中的集合,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,如何访问mongodb express中控制器中的集合?我在mongodb文档db.getCollection(“国家”)如何将名称数据库:db导入控制器 服务器 const express = require('express'); const morgan = require('morgan'); const bodyParser = require('body-parser'); const cors = require('cors'); const mongoose = require(
db.getCollection(“国家”)代码>如何将名称数据库: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;
路线/国家
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并为国家/地区创建
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'),
}
现在,在控制器中导入db文件并
const db = require('./db');
const Countries = db.Countries;
const response = await Countries.find({});
我必须通过mongoose模式模型创建模型“country”吗?我通过mongoDb compass(网站)将句柄插入数据库。我只需要在“选择”下拉列表中获取和显示集合。我建议您为此创建一个简单的架构。我拥有db的所有时间。getCollection
不是一个功能它可以工作。但在控制器中,我必须使用:db.db.collection('countries').findOne({},函数(findErr,countries){if(findErr)throw findErr;console.log(countries);res.json(countries);})代码>