[英]How to retrieve value of a variable in class
您好我從方法中檢索值時遇到問題。 我在node.js中使用sequelize。
當我這樣做時,如何獲得placeTmp ['id']:
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:
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;
}
你能幫助我嗎 ?
非常感謝
因為獲取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.