Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问mongodb、express中控制器中的集合_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

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

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(

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