ile Sequelize için model adını geri alın. Nodejs ve Sequelize ORM framework'üne yeniyim. Ben mysql ile çalışmak için çalışıyorum. Bazı büyük ilerlemeler kaydettim ama şu anda modellerin sıralı hale getirilmesi gereken kısımda takılıyorum. Ama ismin dosyadan alındığı bir hatayı alıyorum.mysql
www
var debug = require('debug')('sampleapp')
var app = require('../server');
var models = require('../model');
app.set('port', process.env.PORT || 3000);
//server running
models.sequelize.sync().then(function() {
var server = app.listen(app.get('port'), function(){
debug('The magic is happening on port '+server.address().port);
});
});
index.js
"use strict"
var fs = require('fs');
var path = require('path');
var Sequelize = require('sequelize');
var debug = require('debug');
var env = process.env.NODE_ENV || "development";
var config = require(path.join(__dirname, '..', 'config', 'config.json'))[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);
var db = {};
fs.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== 'index.js')
})
.forEach(function(file) {
var model = sequelize['import'](path.join(__dirname, file))
db[model.name] = model
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
user.js
module.exports = function(sequelize, DataType){
var User = sequelize.define('user', {
name: DataType.STRING,
password: DataType.STRING,
lastName: DataType.STRING,
email: DataType.STRING,
gender: DataType.CHAR,
cellNumber: DataType.INTEGER
}, {
instanceMethods : {
create : function(onSuccess, onError){
var name = this.name;
var lastName = this.lastName;
var email = this.email;
var gender = this.gender;
var cellNumber = this.cellNumber;
var password = this.password;
var shasum = crypto.createHash('sha1');
shasum.update(password);
password = shasum.digest('hex');
User.build({name: name, lastName: lastName, email: email, gender: gender, cellNumber: cellNumber, password: password})
.save().success(onSuccess).error(onError);
}
}
});
};
ben [model.name] = modeli db de bu hatayı almaya devam:
TypeError: Cannot read property 'name' of undefined
Bu hata bir süredir devam ediyor. Herhangi bir yardım
teşekkürler. Çok yardımcı oldu. db çekini nereye koymanızı önerirsiniz? app.js’de –
Elbette! Yardım edebileceğime sevindim! Dürüst olmak gerekirse, db kontrol işlevi her yerde çalıştırılabilir, tek amacı veritabanına bağlandığınızı doğrulamaktır. Temel olarak, sadece gerekenleri yapabildiğinden emin olmak için 'SELECT 1 + 1' adlı basit bir sorguyu çalıştırır ve çalıştırır. Uygulamanızı önyükleme yaptığınız yerde, ancak önyükleme yaptığınız yerde önermem. – Pierce