mongodb不会从nodejs开始

时间:2014-09-19 05:13:27

标签: node.js mongodb

问题:网页只有在我手动启动mongodb时才有效。否则我得到错误"错误无法连接127.0.0.1:27017"。但是,我相信我确实创建了服务器,也许我错过了一些步骤。

此外,请随时指出更好的做事方式,或者某些事情是否过时......

代码:

var express = require('express'),
    app = express(),
    cons = require('consolidate'),
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server;

app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');

var mongoclient = new MongoClient(new Server("127.0.0.1", 27017));
var db = mongoclient.db('course');

app.get('/', function(req, res){

    // Find one document in our collection
    db.collection('hello_combined').findOne({}, function(err, doc) {

        if(err) throw err;

        res.render('hello', doc);
    });
});

app.get('*', function(req, res){
    res.send('Page Not Found', 404);
});

mongoclient.open(function(err, mongoclient) {

    if(err) throw err;

    app.listen(8080);
    console.log('Express server started on port 8080');
});

1 个答案:

答案 0 :(得分:2)

如果你真的需要从nodejs"启动它,你可以在使用child_process模块​​启动node.js服务器时启动mongodb。

在您的应用代码中添加以下代码:

var child_process = require('child_process')
child_process.exec('start mongod', function (err, stdout, stderr) {
        if (err) {
            console.log(err);
            return;
        }
    });