【问题标题】:Nodejs mongodb don't woking on serverNodejs mongodb 不在服务器上工作
【发布时间】:2018-09-07 22:26:07
【问题描述】:

在本地,我安装了 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 为空数组

它是如何工作的?

【问题讨论】:

  • 以上代码在相同的操作系统和节点版本上为我工作,只需验证来自 mongo 控制台的数据 => 使用 my_database => db.users.find({});
  • @NitinDhomse 是的,它正在工作

标签: node.js mongodb centos7


【解决方案1】:

连接

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
};

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 2023-01-12
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多