如何使用mongoose将node.js连接到mongolab

Bre*_*ren 9 database mongoose mongodb node.js mlab

我一直在尝试使用mongoose(node.js和mongodb的模块).并尝试与mongolab建立连接并运行.我在app.js文件的顶部尝试了以下操作,但我似乎无法进入db.on函数.

global.mongoose = require('mongoose');
var uri = 'mongodb://username:password#####@ds.mongolab.com:#####/db';
global.db = mongoose.createConnection(uri);
global.Schema = mongoose.Schema;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
  console.log("db up")
  var userSchema = new Schema({
      name  :  { type: String, default: '' }
    , password   :  { type: String, default: '' }
  });
  var userModel = mongoose.model('User', userSchema);
  var test = new userModel({name: "test", password: "test"})

  console.log("me: " + test)

  test.save(function (err, test) {
    console.log("saved?")
    if (err) {
      console.log("error");
      return console.error(err);
    }
    console.log("saved!")
  });

  console.log("after save");

});
Run Code Online (Sandbox Code Playgroud)

我的终端输出是

/usr/local/bin/node bin/www
me: { _id: 557f93a8a8b4b8628095bd01, password: 'test', name: 'test' }
after save
Run Code Online (Sandbox Code Playgroud)

调试器似乎也跳过了这个功能(虽然我在WebStorm上的调试技巧有限)

这也没有以更直接的方式工作:

mongoose = require('mongoose');
var uri = 'mongodb://username:password.mongolab.com:#####/db';
db = mongoose.createConnection(uri);
Schema = mongoose.Schema;

  var userSchema = new Schema({
      name  :  { type: String, default: '' }
    , password   :  { type: String, default: '' }
  });
  var userModel = mongoose.model('User', userSchema);
  var test = new userModel({name: "test", password: "test"})

  console.log("me: " + test)

  test.save(function (err, test) {
    console.log("saved?")
    if (err) {
      console.log("error");
      return console.error(err);
    }
    console.log("saved!")
  });
  console.log("after save");
Run Code Online (Sandbox Code Playgroud)

这给了我相同的终端输出.

我想知道我需要采取哪些步骤才能真正开始与我的mongolab数据库交谈.此外,我没有看到在mongolab上创建任何集合.

Bid*_*han 9

尝试使用

db = mongoose.connect(uri);
Run Code Online (Sandbox Code Playgroud)

代替

db = mongoose.createConnection(uri);
Run Code Online (Sandbox Code Playgroud)