小编Ped*_*ado的帖子

sequelize findOrCreate with include assoication

使用sequelize,我有两个关联模型:

var Assessment = sequelize.define("Assessment", {
  name: DataTypes.STRING
});

var User = sequelize.define("User", {
  sid: DataTypes.STRING
});

Assessment.belongsTo(User);
User.hasMany(Assessment);
Run Code Online (Sandbox Code Playgroud)

在一些应用逻辑之后,我有一个User:

User.findOrCreate( { where: {sid: "123"} } ).spread(function (user, created) {
  // user is a User
});
Run Code Online (Sandbox Code Playgroud)

在这一点上,我不能得到sequelize关联用户作为一部分Assessment.findOrCreate.此代码将在数据库中创建一个新的评估记录(如果不存在),但它不会将用户密钥作为记录的一部分包含在内(而只是它只是NULL):

Assessment.findOrCreate( {
  where: { },
  include: [ { model: User, where: user.primaryKeyValues } ]
} ).spread( function (assessment, created) {
  // ...
});
Run Code Online (Sandbox Code Playgroud)

我有一个解决方法,通过添加:

assessment.setUser(user).then( function(assessment) {
   ...
});
Run Code Online (Sandbox Code Playgroud)

...但是,这会导致SQL UPDATE只是创建记录的一部分.我相当肯定应该有办法做到这一点,但无法在docs/so/etc中找到任何东西.

javascript express sequelize.js

10
推荐指数
1
解决办法
4465
查看次数

Facebook的Graph API已弃用的用户字段“ locale”和“ timezone”是否可以替代?

我帮助建立一个聊天机器人Facebook的使者,它使用Facebook的图形API V2.6。但是现在,Facebook要求我们将应用程序提交进行审查。

问题在于我们的应用程序向API询问用户的语言环境时区。我需要用户的语言环境,才可以确定机器人用来与用户对话的语言。但是现在,从Graph API v2.7开始不赞成使用 locale和timezone字段,并且我不知道如何获取用户的语言和时区,也不知道我需要哪些权限,以便将它们包括在应用程序审查中。

我在网上搜索了这些字段的替代方法,但没有发现任何问题。我该怎么办?请帮我。

facebook facebook-graph-api facebook-messenger facebook-graph-api-v2.7 facebook-messenger-bot

5
推荐指数
1
解决办法
732
查看次数