我想编写一个MEAN堆栈程序,读取数据并将其添加到mongodb数据库中。 我的程序现在没有mongodb部分工作(使用数组而不是数据库)。 你能帮我把它连接到mongo吗?在搜索时我绝对迷失了方向。 感谢。
答案 0 :(得分:3)
您希望在节点服务器端创建连接。这是我当前设置的堆栈。
这是我的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
Mongoose配置:
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!");
});
}
这是我的数据库配置
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
}
此设置正在搜索您当前所在的节点环境。生产或开发,开发会在localhost上访问连接。生产去了mongolab,在那里我建立了一个数据库。
答案 1 :(得分:1)
你应该看看mongoose:
答案 2 :(得分:1)
以下是thinkster开始使用MEAN堆栈的精彩教程: https://thinkster.io/angulartutorial/mean-stack-tutorial/
由于听起来你手边有AngularJS,所以你对下半场感兴趣。它使用了你可能想要或不想使用的猫鼬,但它应该是事物如何融合的一个很好的例子。
MongoDB文档也非常有用,因为您在Javascript中执行所有操作。