Ich versuche, eine MEAN Stack-Anwendung für die Universität zu bauen, und ich bin ziemlich neu zu diesem Zeug. Ich habe ein Tutorial über die Implementierung von Login und Registrierung gemacht. Momentan sagt npm start, dass New Schema kein Konstruktor ist. Ich habe bereits nach einer Antwort gesucht, konnte aber keine wirklich finden. So heren mein Code:Mongoose-Schema in NodeJS TypeError: Schema ist kein Konstruktor
// imported libraries---------------------
var mongoose = require('mongoose');
var Schema = mongoose.schema;
var crypto = require('crypto');
var jwt = require('jsonwebtoken'); //generates our token which is required for
logging in
//Mongoose userScheme --------------------
var userSchema = new Schema({
email: {
type: String,
unique: true,
required: true
},
name: {
type: String,
required: true
},
//@arg hash: hashes provide security if the db is hacked --> password is
hashed
hash: String,
salt: String
});
/*
The following setPassword method takes the password and salt to create
a safe password and a salt which is then synchronized with the the DB
This method runs with every user login/registration
*/
userSchema.methods.setPassword = function(password){
this.salt = crypto.randomBytes(16).toString('hex');
this.hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64).toString('hex');
};
// checks if the entered password matches with the password stored in DB (hashed)
//returns a boolean
userSchema.methods.validPassword = function(password){
var hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64).toString('hex');
return this.hash === hash;
};
userSchema.methods.generateJwt = function(){
var expiry = new Date();
expiry.setDate(expiry.getDate()+7); //token expires seven days after creation
return jwt.sign({
_id: this._id,
email: this.email,
name: this.name,
exp : parseInt(expiry.getTime()/1000),
}, "MY_SECRET"); //todo add this secret to mongo db
};
Eine hier ist die Fehlermeldung:
> [email protected] start /Users/Dominik/IDE/ideaProjects/groupup
> node server.js
/Users/Dominik/IDE/ideaProjects/groupup/SEBA_GroupUp/app_api/models/users.js:20
var userSchema = new Schema({
^
TypeError: Schema is not a constructor
at Object.<anonymous> (/Users/Dominik/IDE/ideaProjects/groupup/SEBA_GroupUp/app_api/models/users.js:20:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/Dominik/IDE/ideaProjects/groupup/SEBA_GroupUp/app_api/models/db.js:53:1)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
Ich habe auch die Dokumentation für Mungo aber ich mir die Art Dinge nicht schlecht aussehen. Vielen Dank im Voraus für Ihre Hilfe!
Danke @maxpaj! Manchmal crashen die kleinen Dinge deinen Code: D – dominikger