Nodejs mongodb不会在服务器上工作

时间:2018-03-29 04:21:38

标签: node.js mongodb centos7

在本地,我安装了NodeJS 9.2和MongoDB 3.4

我使用的是MongoDB Native Node Driver 3.0.4

我的数据库代码

const mongo = require('mongodb').MongoClient;
const mongoose = require('mongoose');

mongo.connect('mongodb://localhost:27017/my_database', function(err, client){
    console.log(err);
    if (!err){
        var database = client.db('my_database');
        database.collection('users').find({}).toArray(function(err, docs){
            console.log(docs);
        });
    }
});

结果null表示集合中的错误和数组用户

因此,在服务器centos 7上安装了nodejs 8.2,结果null表示错误,空数组表示docs

它是如何运作的?

1 个答案:

答案 0 :(得分:2)

连接

const mongoose = require('mongoose');
const URL = "mongodb://user:pass@mongo:27017/database?authSource=admin";

mongoose.connect(URL, {"server":{"auto_reconnect":true}});

var db = mongoose.connection;

db.on('error', function(err) {
    console.error('Error in MongoDB connection: ' + err);
});


db.on('connected', function() {
      console.log('Connected to MongoDB');
});

模型

您创建一个表示数据库

中集合的模式
const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const MyModel = Schema({
  foo: String
}, { collection: 'mycollection' });

module.exports = mongoose.model('MyModel', MyModelSchema);

控制器

您使用此架构执行对该集合的请求

const MyModel = require('../models/mymodel');

function myFunction(req, res) {
 MyModel.find({}).exec(function(err, result){
     if(!result) return res.status(404).send();
     var array = [];
     result.map(function(data){
        array.push(data.foo);        
     });
     res.status(200).send({"mydata": array});
 });
}

module.exports = {
  myFunction
};