2016-11-14 3 views
0

saveコールのプリフックにユーザが存在するかどうかを確認しようとしています。Model.find()が関数ではないExpressJS

/home/gopa2000/prog/android_workspace/MobAppsBE/app/models/employer.js:21 
    empSchema.find({email: self.email}, function(err, docs) { 
      ^

TypeError: empSchema.find is not a function 

Package.json:私の問題があるかもしれないものに

{ 
    "name": "tjbackend", 
    "version": "1.0.0", 
    "description": "REST API for backend", 
    "dependencies": { 
    "express": "~4.5.1", 
    "mongoose": "latest", 
    "body-parser": "~1.4.2", 
    "method-override": "~2.0.2", 
    "morgan": "~1.7.0" 
    }, 
    "engines": { 
    "node":"6.4.0" 
    } 
} 

任意の提案

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

var empSchema = new Schema({ 
    name: String, 
    img: String, 
    info: String, 
    mobnum: String, 
    email: String, 
    likes: [String] 
}, 
{ 
    collection: "employers" 
} 
); 


empSchema.pre('save', function(next) { 
    var self = this; 
    empSchema.find({email: self.email}, function(err, docs) { 
     if(!docs.length()){ 
      next(); 
     } 
     else { 
      next(new Error("User exists.")); 
     } 
    }); 
}); 

module.exports = mongoose.model('Employer', empSchema); 

これは私に次のエラーを与える:これは私のモデルのスキーマのですか?

+1

うーん...スキーマ**モデル** EMPのですか?私には*スキーマ*のように見えます。 –

+0

http://stackoverflow.com/questions/16882938/how-to-check-if-that-data-already-exist-in-the-database-during-update-mongoose 「更新」の方法に従っています受諾された回答の「2」である。私は別のコントローラファイルからsaveを呼び出しています。 – doberoi96

+1

あなたは上記の方法に非常に近いと思われません。 'User'は' userSchema'と同じではありません –

答えて

1

find()機能はmodelに属し、schemaに属しません。
あなたがモデルを生成し、それを見つける実行する必要があります。

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

var empSchema = new Schema({ 
    name: String, 
    img: String, 
    info: String, 
    mobnum: String, 
    email: String, 
    likes: [String] 
}, 
{ 
    collection: "employers" 
} 
); 

var employer = mongoose.model('Employer', empSchema); 

empSchema.pre('save', function(next) { 
    var self = this; 
    employer.find({email: self.email}, function(err, docs) { 
     if(!docs.length()){ 
      next(); 
     } 
     else { 
      next(new Error("User exists.")); 
     } 
    }); 
}); 

module.exports = employer; 
関連する問題