복붙노트

[MONGODB] 몽구스 연결

MONGODB

몽구스 연결

나는 몽구스 웹 사이트에서 빠른 시작을 읽고 나는 거의 코드를 복사,하지만 난 MongoDB를가 Node.js.를 사용하여 연결할 수 없습니다

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

exports.test = function(req, res) {
  var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'connection error:'));
  console.log("h1");
  db.once('open', function callback () {
    console.log("h");
  });
  res.render('test');
};

이건 내 코드입니다. 콘솔뿐만 아니라 시간, H1 인쇄합니다. 어디에서 잘못입니까?

해결법

  1. ==============================

    1.당신이 mongoose.connect를 호출 할 때, 데이터베이스와의 연결을 설정합니다.

    당신이 mongoose.connect를 호출 할 때, 데이터베이스와의 연결을 설정합니다.

    그러나 연결이 아마 이미 활성화되어 오픈 이벤트가 이미 (당신은 아직 청취하지 않은 호출 된 것을 의미한다 (요청이 처리되고) 시간에 훨씬 나중에에서 열린 대한 이벤트 리스너를 부착 그것).

    이벤트 핸들러는 가능한 한 연결 호출에 (시간에) 가까이되도록 당신은 당신의 코드를 재 배열한다 :

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function callback () {
      console.log("h");
    });
    
    exports.test = function(req,res) {
      res.render('test');
    };
    
  2. ==============================

    2.

    var mongoURI;
    
    mongoose.connection.on("open", function(ref) {
      console.log("Connected to mongo server.");
      return start_up();
    });
    
    mongoose.connection.on("error", function(err) {
      console.log("Could not connect to mongo server!");
      return console.log(err);
    });
    
    mongoURI = "mongodb://localhost/dbanme";
    
    config.MONGOOSE = mongoose.connect(mongoURI);
    
  3. ==============================

    3.나는 팝업 같은 오류가 있었다. 그리고 나는 실행하고 연결을 듣고 mongod를 가지고 있지 않은 것을 발견했다. 당신이 또 다른 명령 프롬프트 (cmd를) 열 필요하고 mongod를 실행하는 것이 수행

    나는 팝업 같은 오류가 있었다. 그리고 나는 실행하고 연결을 듣고 mongod를 가지고 있지 않은 것을 발견했다. 당신이 또 다른 명령 프롬프트 (cmd를) 열 필요하고 mongod를 실행하는 것이 수행

  4. ==============================

    4.몽구스의 기본 연결 로직은 4.11.0의로 사용되지 않습니다. 새 연결 논리를 사용하는 것이 좋습니다 :

    몽구스의 기본 연결 로직은 4.11.0의로 사용되지 않습니다. 새 연결 논리를 사용하는 것이 좋습니다 :

    여기 NPM 모듈의 예는 다음 몽구스 - 연결 - DB

    // Connection options
    const defaultOptions = {
      // Use native promises (in driver)
      promiseLibrary: global.Promise,
      useMongoClient: true,
      // Write concern (Journal Acknowledged)
      w: 1,
      j: true
    };
    
    function connect (mongoose, dbURI, options = {}) {
      // Merge options with defaults
      const driverOptions = Object.assign(defaultOptions, options);
    
      // Use Promise from options (mongoose)
      mongoose.Promise = driverOptions.promiseLibrary;
    
      // Connect
      mongoose.connect(dbURI, driverOptions);
    
      // If the Node process ends, close the Mongoose connection
      process.on('SIGINT', () => {
        mongoose.connection.close(() => {
          process.exit(0);
        });
      });
    
      return mongoose.connection;
    }
    
  5. ==============================

    5.내가 연결을 간단한 방법 :

    내가 연결을 간단한 방법 :

    import mongoose from 'mongoose'
    
    mongoose.connect(<connection string>);
    mongoose.Promise = global.Promise;
    mongoose.connection.on("error", error => {
        console.log('Problem connection to the database'+error);
    });
    
  6. from https://stackoverflow.com/questions/20360531/mongoose-connection by cc-by-sa and MIT license