2017-04-16 2 views
0

OS는 Os X입니다. bong을 통해 mongodb를 설치했습니다.Mongodb는 express.js를 통해 저장하지 않습니다.

난 터미널을 열고

mongod 

몇 행은 상기 터미널에 인쇄를 입력한다. DB가 확실히 작동하는 것 같습니다. I는 예를 들어 참조 :

db version v3.4.3 
waiting for connections on port 27017 

난 후

mongo 

를 다른 단말을 연 입력 그때 참조 :

MongoDB shell version v3.4.3 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.4.3   

난 후,이 단말

show dbs 

에 입력 그리고 나는 본다 :

내가 입력

{ "_id" : ObjectId("58f34b96d7eac221145a5d4e"), "name" : "tutorials point" } 
{ "_id" : ObjectId("58f367e198554c65c4a34c9f"), "name" : "lalaland" }  

: 다음

db.movie.insert({ name: "forreste gump"}); 

및 찾기() 명령이 리턴 :

admin 0.000GB 
api 0.000GB 
local 0.000GB 

그래서 나는

use api 
db.movie.find(); 

터미널 지문을 입력3210

{ "_id" : ObjectId("58f34b96d7eac221145a5d4e"), "name" : "tutorials point" } 
{ "_id" : ObjectId("58f367e198554c65c4a34c9f"), "name" : "lalaland" } 
{ "_id" : ObjectId("58f369259a667b015582e4b8"), "name" : "forreste gump" } 

이제 express.js로 새 노드 응용 프로그램을 만듭니다. 그때

"mongoose": "~4.9.4", 

와 나는를 시작할 때, 그래서

(I 해당 버전이 설치되어 볼 수 있습니다) 설치 NPM 실행

를 입력 package.json에서

var express = require('express'); 
var app  = express(); 
var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 
var connection = mongoose.createConnection('mongodb://localhost/api'); 

connection.on('open', function() { 
    console.log('opened'); 
}); 

var movieSchema = mongoose.Schema({ 
    name: String 
}); 

var Movie = mongoose.model('Movie', movieSchema); 
var pulp = new Movie({ name: 'pulp fiction' }); 
pulp.save(function (err, fluffy) { 
    if (err){ 
     console.error("Error:"); 
     console.error(err); 
    } 
    console.error('inside save'); 
}); 
console.log('pulp.name'); 
console.log(pulp.name); 

:이 코드입니다 내가

을 볼 터미널에서

node app.js 

와 응용 프로그램 0

pulp.name 
pulp fiction 
opened  

즉, "pulp.save"행은 실행되지 않습니다. 또는 아마, 나타나지 않는 오류로 인해 멈추었을 것입니다. 나는 이것에 미쳐 가고있다. 나는 정말로 그 문제가 무엇인지 모른다. mongod가 실행 중이고 몽구스의 올바른 데이터베이스에 연결됩니다. 그러나 여전히 문서를 저장할 수 없으며, 가장 중요한 것은 오류의 흔적이 보이지 않는다는 것입니다. 분명히 어딘가에서 발생해야합니다. 몽구스 작업을 어떻게 디버그 할 수 있습니까?내가 몽고 클라이언트를 실행 터미널로 이동, 내가 입력 할 때 :

PS

db.movie.find() 

난 단지

{ "_id" : ObjectId("58f34b96d7eac221145a5d4e"), "name" : "tutorials point" } 
{ "_id" : ObjectId("58f367e198554c65c4a34c9f"), "name" : "lalaland" } 
{ "_id" : ObjectId("58f369259a667b015582e4b8"), "name" : "forreste gump" } 

그래서 "펄프 픽션"는 추가되지 않았다 참조하십시오. 당신이 할 mongoose.createConnection()을 사용하는 경우 :

+0

'영화'vs '영화'어쩌면? – Ties

+0

빈 결과 (mongo 클라이언트에서 db.Movie.find(); – oderfla

+0

오른쪽 DB 사용 하시겠습니까? – Ties

답변

1

의 차이는 mongoose.connect()mongoose.createConnection()

는 기본적으로 다음과 같이 작동합니다 (또한 this question 참조)

var db = mongoose.createConnection(...) 
// And use the db variable 
var Model = db.model(...); // etc... 

대신 mongoose.model(...)를 사용하여.

mongoose.createConnection()을 사용하면 db 개체의 범위 내에서만 mongoose 개체에 연결이 만들어지지 않기 때문입니다.

관련 문제