连接MongoDB到我的MEAN程序

我想写一个MEAN栈程序,读取和添加数据到一个mongodb数据库。 我的程序现在没有mongodb部分工作(与数组而不是数据库)。 你能帮我把它连接到芒果吗? 我在search时绝对迷失了方向。 谢谢。

您需要在节点服务器端创build连接。 这是我目前的设置为一个堆栈。

这是我的server.js文件

// modules ================================================= var express = require('express'), mongoose = require('mongoose'); // Node Environment Configuration =========================================== var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development', config = require('./server/config/config')[env]; // Create an Instance of Express =========================================== var app = express(); // Modules of app =========================================== require('./server/config/express.js')(app, config); // Express Configuration require('./server/config/mongoose.js')(config); // Database Configuration require('./server/config/routes.js')(app); // Routes Configuration require('./server/config/passport.js')(); // Passsport Configuration // Databse Connection ================================================== mongoose.connect(config.db); var db = mongoose.connection; // start app =============================================== app.listen(config.port); console.log('listening on port ' + config.port); // shoutout to the user exports = module.exports = app; // expose app 

mongooseconfiguration:

 module.exports = function(config) { mongoose.connect(config.db); var db = mongoose.connection; db.on('error', function callback () { console.log("Connection error"); }); db.once('open', function callback () { console.log("Mongo working!"); }); } 

这是我的数据库configuration

 var path = require('path'); var rootPath = path.normalize(__dirname + '/../../'); module.exports = { development:{ db: 'mongodb://localhost:27017/mean-demo', rootPath: rootPath, port: process.env.PORT || 3000 }, production:{ db: 'mongodb://mypath:pathname@ds041160.mongolab.com:47350/pathname', rootPath: rootPath, port: process.env.PORT || 80 } } 

这是我的快递模块:

 var express = require('express'), logger = require('morgan'), bodyParser = require('body-parser'), methodOverride = require('method-override'), cookieParser = require('cookie-parser'), session = require('express-session'), passport = require('passport'); module.exports = function(app, config){ app.set('view engine', 'ejs'); app.set('views', 'server/views'); app.use(cookieParser()); //required for auth sessions app.use(bodyParser()); //must come after cookie parser app.use(session({secret: 'healing center'})); //required for auth sessions app.use(passport.initialize()); //initialize passport middleware app.use(passport.session()); //telling passport to use sessions app.use('/js', express.static(config.rootPath + '/client/js')); app.use(methodOverride('X-HTTP-Method-Override')); // simulate delete/put app.use(express.static(config.rootPath + '/client')); // set the static files location /client/img will be /img for users } 

此设置正在search您当前所在的节点环境。生产或开发,开发命中本地主机上的连接。 生产到蒙古包,我已经build立了一个数据库。

你应该看看mongoose:

http://mongoosejs.com/docs/index.html

从thinkster开始使用MEAN堆栈的一个很好的教程: https ://thinkster.io/angulartutorial/mean-stack-tutorial/

因为听起来你手上有AngularJS方面,所以下半年你大都会感兴趣。 它使用你可能或不想使用的mongoose,但它应该是一个很好的例子,说明事情是如何组合在一起的。

MongoDB文档也很有用,因为你正在做所有的Javascript。