【发布时间】:2011-10-30 14:41:04
【问题描述】:
您好,我在从方法中检索值时遇到问题。我在 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;
}
你能帮帮我吗?
非常感谢之前
【问题讨论】:
-
不能从异步操作中返回值;这没有道理。相反,您必须构建代码以使用回调。这种情况与刚刚提出的 JavaScript 问题相同(在不同的上下文中)"The value of my function is undefined."
标签: javascript class node.js