[英]How to retrieve value of a variable in class
Hello I have a problem to retrieve a value from a method. 您好我从方法中检索值时遇到问题。 I'm using sequelize in node.js.
我在node.js中使用sequelize。
How can get placeTmp['id'] when I do this: 当我这样做时,如何获得placeTmp ['id']:
server.js: server.js:
var Sequelize = require('sequelize');
var sequelize = new Sequelize(config.database, config.username, config.password);
var Place = sequelize.import(__dirname + '/model/Place');
console.log(Place.getActualId()); // An ID but I'll retrieve undefined :(
Place.js: Place.js:
module.exports = function(sequelize, DataTypes) {
var place = sequelize.define('Place', {
name : DataTypes.STRING,
address : DataTypes.STRING,
city : DataTypes.STRING,
zipcode : DataTypes.INTEGER,
website : DataTypes.STRING,
start : DataTypes.DATE,
end : DataTypes.DATE,
type : DataTypes.STRING,
actual : DataTypes.BOOLEAN
},
{
underscore : true,
timestamps : false,
freezeTableName: true,
classMethods: {
getActualId: function(){
this.find({where: {actual: 1}}).on('success', function(placeTmp){
return placeTmp['id'];
})
}
}
});
return place;
}
Can you help me ? 你能帮助我吗 ?
Many thanks before 非常感谢
Bacause getting an ID is async operation You should do something like this: 因为获取ID是异步操作你应该做这样的事情:
var Sequelize = require('sequelize');
var sequelize = new Sequelize(config.database, config.username, config.password);
var Place = sequelize.import(__dirname + '/model/Place');
Place.getActualId(function(id){ console.log(id); });
module.exports = function(sequelize, DataTypes) {
var place = sequelize.define('Place', {
name : DataTypes.STRING,
address : DataTypes.STRING,
city : DataTypes.STRING,
zipcode : DataTypes.INTEGER,
website : DataTypes.STRING,
start : DataTypes.DATE,
end : DataTypes.DATE,
type : DataTypes.STRING,
actual : DataTypes.BOOLEAN
},
{
underscore : true,
timestamps : false,
freezeTableName: true,
classMethods: {
getActualId: function(callback){
this.find({where: {actual: 1}}).on('success', function(placeTmp){
callback(placeTmp['id']);
})
}
}
});
return place;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.