javascript - 如何在 Mongoose 中包含外部模型?

标签 javascript node.js mongodb mongoose

当我想在 nodejs 中包含我的模型和 Mongoose 时,我遇到了一个问题,我正在创建一个具有这样架构的模型

var mongoose = require('mongoose')
  , Schema = mongoose.Schema;

var Users = new Schema({
    idUser  : {type:String},
    username: {type:String}
});

// middleware
Users.pre('save', function (next,done) {
  notify(this.get('email') + done);
  // something goes wrong
  next(new Error('something went wrong'));
});

//registered on mongoose models
mongoose.model("Users",Users);

我保存在折叠模型/schema.js 但是当我尝试使用此代码时,我不知道如何在 app.js 中调用该文件

var mongoose = require('mongoose')
  , models = require('./models/schema.js');

//mongoose configurationfor database;
var db = mongoose.connect("mongodb://localhost/vynchat");
var users = mongoose.model("Users");
users.save();

当我尝试启动 sudo node app.js 时出现错误

throw e; // process.nextTick error, or 'error' event on first tick
              ^
TypeError: Object function model() {
    Model.apply(this, arguments);
  } has no method 'save'
    at Object.<anonymous> (/opt/development/vynapp/app.js:18:7)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)

错误模型()没有方法保存... 我该如何解决这个问题..?

最佳答案

您正在调用 users.save();,但是,usersModel

save 方法可用于模型实例,例如:

var mongoose = require('mongoose')
  , models = require('./models/schema');

var db = mongoose.connect("mongodb://localhost/vynchat")
  , Users = mongoose.model("Users");


var user = new User({
      "your": "data"
    });

user.save(function (err, model) {
  if (err) throw err;

  console.log("My new User is saved",
    "`save` hook worked as espected since we had no errors here");
});

您应该阅读 node.js modules API并仔细阅读mongoose API .

附带说明:当您在代码 Node 中的第一次 require('mongoose') 会给您一个 mongoose 连接器的实例时,后续的 requires 将产生相同的对象。

关于javascript - 如何在 Mongoose 中包含外部模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530354/

相关文章:

javascript - Javascript setTimeOut 真的是异步的吗?

html - 我可以使用纯 HTML 在 Express 框架中编写 View 吗?

node.js - Node 异步执行

javascript - 使用 Mongoose 在 Node JS 中进行全文搜索

javascript - 数组中最小的数及其位置

javascript - Angular - 依赖字段验证

c# - 使用 ajax 请求获取可下载文件

node.js - 未处理的拒绝 RangeError : Using transaction with a client that is in monitor mode does not work due to faulty return values of Redis

mongodb - 如何在sh文件中执行mongo命令?

javascript - 原型(prototype)方法中无法访问的变量