2017-12-03 26 views
0

私はnodejsを全く新しくしました。私は、Expressとmongo dbを使って基本的な挿入アプリケーションを作成しようとしました。私は急行ハンドルを使用していますMongodb接続が確立されていません。データが明示的に使用されていません。

<form action="/insert" method="post"> 
    <div class="input"> 
     <label for="title">Title</label> 
     <input type="text" id="title" name="title"> 
    </div> 
    <div class="input"> 
     <label for="content">Content</label> 
     <input type="text" id="content" name="content"> 
    </div> 
    <div class="input"> 
     <label for="author">Author</label> 
     <input type="text" id="author" name="author"> 
    </div> 
    <button type="submit">INSERT</button> 
</form> 

しかし毎回エラーが私のフォームファイル

AssertionError [ERR_ASSERTION]: null == { MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017] 

Index.js

var express = require('express'); 
var router = express.Router(); 
var mongo = require('mongodb').MongoClient; 
var objectId = require('mongodb').ObjectID; 
var assert = require('assert'); 
var url = 'mongodb://localhost:27017/test'; 
/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index'); 
}); 
router.post('/insert', function(req, res, next) { 
    var item = { 
     title: req.body.title, 
     content: req.body.content, 
     author: req.body.author 
    }; 
    mongo.connect(url, function(err, db) { 
    assert.equal(null, err); 
    db.collection('user-data').insertOne(item, function(err, result) { 
    assert.equal(null, err); 
    console.log('Item inserted'); 
    db.close(); 
    }); 
}); 
res.redirect('/'); 
}); 
module.exports = router; 

を投げています。現在私はローカルマシンにmongodbをインストールしています。私はそれを動作させるために、マングースを使用する必要があります。これはマングースもなくてもうまくいくはずです。私はエラーを見つけることができません。

+0

node.jsからmongodbに接続すると[ECONNREFUSEDエラーが発生する可能性があります](https://stackoverflow.com/questions/20386464/econnrefused-error-when-connectingtoto-mongodb-from-node-js) – MikaS

答えて

0

私が持っているので、次のコード行をその出来事を感じて:

router.get('/', function(req, res, next) { 
    res.render('index'); 
}); 

そのが欠落している次の()

ミドルウェアは、おそらくプログラムが後に来る任意のコードを実行させていませんそれ。次のように多分それを変更

がお手伝いします:あなたが実行しているのは何プラットフォーム

router.get('/', function(req, res, next) { 
    res.render('index'); 
    next(); 
}); 
+0

それを試してみました。 – UDGogs

+0

mongodbが動作しているかどうか疑問に思っていますか? *** ./mongo/bin/mongod --dbpath~/mongo-data-new *** あなたの端末で実行しているこのようなコマンドを持っていますか? – nishkaush

+0

これは問題でした。私のmongodパスが正しく設定されていませんでした。私はパスをリセットした後、その作業はありません – UDGogs

0

を? Mongoデータベースが稼動していないようです。 telnet localhost 27017でテストすることができ、デフォルトのMongoDBポートとの接続を確立する必要があります。