Tag: sequelize.js

如何处理在我想要之前返回的asynchronous代码?

我有一个函数,其中包含代码… db.query(query).then(results => { _.each(results, result => { db.query(anotherQuery).then( /* modify result based off anotherQuery results */ }); }); resolve(results); }); 当然,正在发生的事情是resolve(results))正在被运行,同时第二个对数据库的请求正在运行,这意味着承诺不会在返回之前添加额外的数据。 有没有一种模式可以用来避免这种情况? 我正在使用Sequelize,它是由Bluebird for Promises支持的。 这是一个我曾经遇到过的模式,我已经看过使用wait.for,但它似乎已经过时,并且不支持Promise 。

如何在Node.js中添加promise.all在循环中searchfindOrCreate?

我在续集中创build了两个模型。 我得到了一系列的结果“用户”,并通过循环来获取或创build新的“房间”基于User.id。 我想打印完所有的房间。 我在控制台中得到了空数组,因为它是不同步的。 如何在创build所有房间后调用console.log? var Users = sequelize.import(__dirname + "/../models/own/user"); var Rooms = sequelize.import(__dirname + "/../models/own/room"); var _this = this; this.users = []; this.rooms = []; Users.findAll().then(function(users) { _this.users = users; users.forEach(function(user){ Rooms.findOrCreate({where: {user_id: user.get('id')}}) .spread(function(room, created) { _this.rooms.push( room.get({ plain: true }) ); }); }); console.log(_this.rooms) });

序列化具有相同外键的多对多表只select一个值

我有以下结构: var User = sequelize.define('user', { name: DataTypes.STRING }); var Post = sequelize.define('post', { text: DataTypes.STRING }); var PostComment = sequelize.define('postComment ', { id: { type: DataTypes.BIGINT, primaryKey: true, autoIncrement: true }, comment: DataTypes.TEXT }); Post.belongsToMany(User, {as: 'postUserComment', through: {model: models.PostComment, unique: false}, foreignKey: 'idPost'}); User.belongsToMany(Post, {through: {model: models.PostComment, unique: false}, foreignKey: 'idUserComment'}); 我能够与用户创build多个评论到同一职位。 但是,如果我对同一用户的同一post有更多然后一个评论,并试图通过做select他们: […]

有没有办法使用Sequelize一次性保存多个embedded式模型

假设我们在NodeJs Sequelize中有这样的结构。 var User = sequelize.define('user', {/* … */}) var Project = sequelize.define('project', {/* … */}) Project.hasMany(User) video演示者的这部分提供了使用承诺以两个步骤保存embedded的对象。 在我们的情况下,会是这样的: Project.create({ … }).then(function(project){ User.create({ … projectId:project.id }) }) 但是这种方法会导致两个数据库调用。 那么,是否有可能保存embedded式对象(包含用户的项目,例如用户必须有项目的ID作为一个外键)到一个数据库调用数据库或在一个事务使用Sequelize?

Sequelize JSON数据types

我已经定义了一个模型 module.exports = function (sequelize, DataTypes) { const MyModel = sequelize.define('MyModel', { data: { type: DataTypes.JSON, … }, … }); return MyModel; }; 我使用查询 MyModel.findAll().then(myModels => …); 但是,查询结果中的data字段是一个string,而不是JSON对象。 我如何解决它?

如何运行sequelize db:使用env vars在Elastic Beanstalk EB上迁移? 如何在容器命令中访问.env vars?

如何运行sequelize db:使用env vars在ElasticBean上迁移? 运行sequelize迁移失败,因为它无法find.env文件。 { Error: ENOENT: no such file or directory, open '.env' 我的master.config如下所示: container_commands: 00_node_binary: command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node" 00_npm_binary: command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm" 01_migrations: command: npm run migrate leader_only: true 和我的package.json包含 "migrate": "node_modules/sequelize-cli/bin/sequelize db:migrate"

当尝试关联条目时,将多个到多个故障序列化为“不相关联”?

我与Sequelize多对多的configuration有一个问题,它在那里抱怨site_article_keyword is not associated to article_keyword 。 下面的代码代表了一个最小的testing案例,试图了解我做错了什么(我希望提供更小的东西,但这是我的)。 我正在使用蓝鸟的Promise API。 const Sequelize = require('sequelize'); var sequelize = new Sequelize(undefined, undefined, undefined, { dialect: 'sqlite', storage: './mydatabase', }); const SiteArticle = sequelize.define('site_article', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, ownerId: { type: Sequelize.INTEGER, field: 'owner_id' }, title: Sequelize.STRING // other fields omitted }, […]

Sequelize – 自定义创build方法

是否有可能在Sequelize创build一个自定义的create方法。 我希望它能传递一个URL来下载缩略图,然后用这些数据调用一个方法来下载照片,上传到S3,然后将S3 URL保存为thumbnailPhotoURL。 这是我正在尝试做的语法的一个例子: var Sequelize = require('sequelize'); var sequelize = new Sequelize('database', 'username', 'password'); var User = sequelize.define('user', { username: Sequelize.STRING, birthday: Sequelize.DATE, thumbnailPhotoURL: Sequelize.STRING }); sequelize.sync().then(function() { return User.create({ username: 'janedoe', birthday: new Date(1980, 6, 20), // this will be used to download and upload the thumbnailPhoto to S3 urlToDownloadThumbnailPhotoFrom: 'http://example.com/test.png' }); }).then(function(jane) […]

在内部连接中用count计数查询

我试图将这个查询转换为查询对象什么是正确的方式做到这一点? SELECT families.id, count('answers.familyId') FROM families LEFT JOIN answers on families.id = answers.familyId WHERE answers.isActive=1 AND answers.answer=1 GROUP BY families.id HAVING COUNT('answers.familyId')>=6

Sequelize已经通过另一个表

我有以下三种模式 用户 user_id user_email 组 group_id group_name GroupUser group_user_id user_id group_id 如何在获取用户数据时获取组详细信息(如果它与用户映射)? 有另一个表有任何Sequelize hasOne协会吗?