简体   繁体   English

如何在类中检索变量的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM