在本地,我安装了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
它是如何运作的?
答案 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
};