2017-12-03 1 views
0

저는 nodejs에 완전히 익숙하지 않습니다. 나는 express와 mongo db를 사용하여 기본적인 삽입 앱을 만들려고했다. 내가 표현 핸들을 사용하고몽고 연결이 설정되지 않았습니다. 데이터가 익스프레스를 사용하여 삽입되지 않습니다.

<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

Yah 그게 문제였습니다. 내 mongod 경로가 올바르게 설정되지 않았습니다. 경로 재설정 후 작동하지 않음 – UDGogs

0

실행 당신의 어떤 플랫폼 : 도움이 될 것입니다 다음과 같이

는 아마 변경? Mongo Database가 작동하지 않는 것 같습니다. telnet localhost 27017으로 테스트 할 수 있으며 기본 MongoDB 포트와의 연결을 설정해야합니다.