2013-08-31 5 views
1

몽구스로 노드를 실행하는 것은 이번이 처음입니다. 나는이 백본 책에서 몇 가지 자습서를 따르고 있으며,이 장에서 표현형, 몽구스를 사용하여 편안한 API를 만드는 방법을 배우고 있으며 코드 복사 및 붙여 넣기와 정확히 일치하지만 여전히 작동하지 않습니다. 여기에 코드입니다 : 내가 문제를 해결하기 위해 노력하고 있지만, 내가 찾은 아무것도 나를 MongoDB를 연결할 수 있도록 같았다 스택 오버 플로우 및 다른 사이트에 주위 파고 봤는데간단한 노드 서버에서 몽구스 연결 방법이 실패합니다. 익스프레스, 몽구스, 경로

http://addyosmani.github.io/backbone-fundamentals/#creating-the-back-end

// Module dependencies. 
var application_root = __dirname, 
    express = require('express'), //Web framework 
    path = require('path'), //Utilities for dealing with file paths 
    mongoose = require('mongoose'); //MongoDB integration 

//Create server 
var app = express(); 

// Configure server 
app.configure(function() { 
    //parses request body and populates request.body 
    app.use(express.bodyParser()); 

    //checks request.body for HTTP method overrides 
    app.use(express.methodOverride()); 

    //perform route lookup based on url and HTTP method 
    app.use(app.router); 

    //Where to serve static content 
    app.use(express.static(path.join(application_root, 'site'))); 

    //Show all errors in development 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

//Start server 
var port = 4711; 
app.listen(port, function() { 
    console.log('Express server listening on port %d in %s mode', port, app.settings.env); 
}); 

// Routes 
app.get('/api', function(request, response) { 
    response.send('Library API is running'); 
}); 

//Connect to database 
mongoose.connect('mongodb://localhost/library_database'); 

//Schemas 
var Book = new mongoose.Schema({ 
    title: String, 
    author: String, 
    releaseDate: Date 
}); 

//Models 
var BookModel = mongoose.model('Book', Book); 

.

첫 번째 오류는 다음과 같습니다

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: failed to connect to [localhost:27017] 
    at null.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:536:74) 
    at EventEmitter.emit (events.js:106:17) 
    at null.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15) 
    at EventEmitter.emit (events.js:98:17) 
    at Socket.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10) 
    at Socket.EventEmitter.emit (events.js:95:17) 
    at net.js:411:14 
    at process._tickCallback (node.js:415:13) 

이러한 변화는 그 문제를 해결하는 것 : 그 표현 일 후

mongoose.connect('mongodb://localhost/library_database', function(err) { if (err) console.log(err); }); 

을하지만, 연결 MongoDB를 실패

Express server listening on port 4711 in development mode 
[Error: failed to connect to [localhost:27017]] 

나는이로 변경 시도 : 나는 또한 를 실행하려고

mongoose = require('mongoose').Mongoose; 

은 CLI의 옵션에 대한 몇 가지 변화와 CLI에을 mongod하지만 그냥 도움말 페이지를 가져올 것으로 보인다. 나는 완전히 붙어있어 ... 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

15

실제로 mongod를 실행하고 연결을 수신해야합니다. 옵션없이 mongod을 입력하고 Enter 키를 누른 다음 실행하십시오. 그런 다음 별도의 터미널에서 익스프레스 앱을 시작하십시오. mongod은 mongodb 서버 데몬이며, mongo은 대화식 REPL을 실행하고 데이터베이스 명령을 실행할 수있는 명령 행 클라이언트입니다.

+0

나는 그것을 실제로 가지고 있고 달리기 때문에 별도의 창에서 설정 파일의 경로를 전달해야했다! 당신의 도움을 주셔서 감사합니다! – Jeffpowrs

+0

알았어, mongodb가 실행 중이며 "모든 출력은 /var/log/mongodb/mongodb.log"이지만 내 서버를 시작하고 시작하면이 오류가 계속 발생합니다. [오류 : [localhost : 27017]에 연결하지 못했습니다.] 0 \ – Jeffpowrs

+1

코드 문제가 있다고 생각하지 않습니다. 나는 뭔가가 너의 mongod와 헤이 와이어 일 것이라고 생각하지만 stackoverflow 코멘트를 통해 해결하기 어려운 문제 해결 방법이다. 어쩌면 MongoHub 또는 이와 동등한 mongodb GUI를 설치하고 제대로 연결할 수 있는지 확인하십시오. 또한 'telnet localhost 27017'을 실행하면 mongod가 실제로 27017에서 TCP 연결을 수락하는지 여부를 확인할 수 있습니다. –

3

데이터베이스 자체를 설치해야합니다. mongodb 설치 안내서는 here을 참조하십시오.