Ich schreibe meine erste Nodejs App, und ich bekomme einen Fehler, wenn ich ein Stück Code in eine externe JS-Datei verschieben. der Code, den ich zu bewegen, bin versucht, eine mongodb Schemadeklaration:Nodejs undefined var, wenn separaten Code in Modellen
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//--------------------users ------------
var usersSchema = new Schema({
email: String,
name: String,
phoneNumber: String,
BirthDate: Date,
loginpwd:String
});
var UserModel = mongoose.model('users', usersSchema);
I-Dateisystem-Modul bin mit der externen Datei laden:
fs.readdirSync(__dirname+'/models').forEach(function(filename){
if (~filename.indexOf('.js'))
require(__dirname+'/models/'+ filename);
console.log(filename+" added");
});
der folgende Block nicht gut funktioniert, wenn ich trenne der Code, ein "undefined UserModel" Fehler werfen:
var userData = new UserModel({email : req.body.edtEmail,
name: req.body.edtName,
phoneNumber: req.body.edtPhoneNumber,
BirthDate: req.body.edtBirthDate,
loginpwd: req.body.edtSenha});
// save user data to database
userData.save(function(err, record){
if(err) throw err;
// session setting
req.session.userEmail = req.body.edtEmail;
req.session.name = req.body.edtName;
req.session.phoneNumber = req.body.edtPhoneNumber;
req.session.birthDate = req.body.edtBirthDate;
req.session.userId = record._id;
res.redirect('/dashboard');
});
der folgende Code funktioniert gut in beide Inline-Code oder "in der Datei" Code:
app.get('/users/json', function(req, res){
mongoose.model('users').find(function(err, users){
res.send(users);
});
});
Mache ich etwas falsch beim Laden externer Datei? oder etwas fehlt?
Es funktioniert mit var userData = new UserModel.userModel. Also habe ich den exportierten Alias geändert, um ihn lesbarer zu machen. Der Code wurde in "var userData = new UserModel.user ({...") geändert –