How to enable external models in mongoose?

I have a problem when I want to include my models with mongoose in nodejs, I create models with such a scheme

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);

and I save in models folde / schema.js but I don’t know how to call this file in app.js when I try to use this code

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();

I have an error when I try to run 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)

The error model () does not have a save method ... how can I fix this.?

+5
source share
2 answers

You call users.save();, but users- this is the Model .

Methods savecan be used for model instances, for example:

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");
});

You should read the node.js API modules and carefully read the mongoose API .

: require('mongoose'), node mongoose, .

+5

. :

var users_model = mongoose.model("Users", YourSchemaObject);
var User_Document = new user_model();
User_Document.field_name = 'value'; //here you can access getter/setter/methods
User_Document.save();
0

All Articles