2015-01-12 59 views
1

我想写一个MEAN堆栈程序,读取数据并将其添加到mongodb数据库中。 我的程序现在没有mongodb部分工作(与数组而不是数据库一起工作)。 你能帮我把它连接到mongo吗?在搜索时,我完全迷失了方向。 谢谢。将MongoDB连接到我的MEAN程序

+2

...不确定如何帮助,当你不显示任何代码,并没有解释你已经尝试过。 –

+0

我没有代码,因为我什么都没发现。 我发现了一个使用平均堆栈的大程序,但它太复杂了,我放弃了。我正在寻找一个简单的例子来说明mongo和程序之间的联系应该如何。 – user3100708

回答

2

您需要在节点服务器端创建连接。这是我当前的堆栈设置。

这是我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 

猫鼬配置:

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:[email protected]: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 
} 

此安装程序正在搜索您当前正在使用的节点环境。Production或Development,Development在本地主机上找到连接。生产去了我设置数据库的地方。

+0

谢谢!我会尝试 – user3100708

+0

没问题,让我知道如果你有任何问题。 – byrdr

1

这里是thinkster一个伟大的教程为入门平均堆栈: https://thinkster.io/angulartutorial/mean-stack-tutorial/

因为它听起来就像你有AngularJS在手边,你大多会对下半场感兴趣。它使用您可能会或可能不想使用的Mongoose,但它应该是事情如何组合在一起的一个很好的例子。

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

+0

是的,我有angularjs代码。我会尝试阅读它。谢谢 – user3100708