Olá!
Estou tendo problemas em utilizar o model de users criado na pasta models na api de auth. Segue o erro apresentado:
C:\biwebapp\node_modules\mongoose\lib\index.js:364
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model "User".
Use mongoose.model(name, schema)
E aqui tenho o meu model:
var mongoose = require('mongoose');
var schema = mongoose.Schema({
username : {
type : String,
required : true
},
password : {
type : String,
required : true
},
accessType : {
type : String,
required : true
}
});
mongoose.model('User', schema);
O meu route:
module.exports = function(app){
var api = app.app.api.auth;
app.post('/authenticate', api.auth);
app.use('/*', api.tokenVerify);
}
E minha API:
var mongoose = require('mongoose');
var jwt = require('jsonwebtoken');
module.exports = function(app) {
var api = {};
var model = mongoose.model('User');
api.auth = function(req,res){
model.findOne({
username : req.body.username,
password : req.body.password
})
.then(function(user){
if(!user){
console.log('Usuário e Senha inválidos!');
res.sendStatus(401);
} else {
console.log(user.username)
var token = jwt.sign({username : user.username}, app.get('secret'), {
expiresIn: 84600
});
console.log('Token criado e sendo enviado no header de requisicao');
res.set('X-NW-Token',token);
res.end();
}
});
};
api.tokenVerify = function(req, res, next) {
var token = req.headers['X-NW-Token'];
if(token) {
console.log('Verificando Token...');
jwt.verify(token, app.get('secret'), function(error,decoded) {
if(error){
console.log('Token Rejeitado!');
return res.sendStatus(401);
} else {
console.log('Token aceito');
req.user = decoded;
next();
}
});
} else {
console.log('Token não foi enviado');
return res.sendStatus(401);
}
};
return api;
};