0
노드 및 몽구스를 사용하여 앱을 구축하고 있습니다. 그리고 테스트 할 때 이상한 문제가 있습니다. 여기에 내 auth.index.js (사용자 로그인 용)가 있습니다.mongoose, node, user.model.js에 정의 된 메소드를 사용할 수 없습니다.
auth.index.js : 여기
var express = require('express');
var mongoose = require('mongoose');
var passport = require('passport');
var config = require('../config/environment');
var User = require('../api/user/user.model');
var jwt = require('jsonwebtoken');
var auth = require('./auth.service');
var router = express.Router();
router.post('/login', function (req, res, next){
User.find({email: req.body.email}, function (err, user){
if (err) {
return next(err);
} else if (!user) {
return res.json({message: 'Invalid email.'});
} else {
if(!user.authenticate(req.body.password)){
return res.json({message: 'Invalid password.'});
};
var token = auth.signToken(user._id, user.username, user.role);
return res.json({token: token});
};
});
});
는 user.model.js입니다 :
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
username: String,
password: String,
email: {type: String, lowercase: true},
role: {type: String, default: 'user'},
provider: String,
date: String
});
UserSchema.methods = {
//check password
authenticate: function(plainText) {
return plainText === this.password;
}
};
그러나 명령 창에서이 것을 돌려
사용자 .authenticat는 함수가 아닙니다.
I 싶어 이유를 알고, 그리고 내가 직접 방법을 사용할 수 없습니다 또는 내가 여권을 통해 메소드를 호출 할 필요가 있음을 의미합니까? 감사.
나는 시도했지만 여전히 user.authenticate를 반환하는 것은 기능이 아닙니다. – vivian
당신이 이렇게 내보내고 있습니까? module.exports = 사용자; –
이렇게 : module.exports = mongoose.model ('User', UserSchema, 'User'); – vivian