Tag: sequelize.js

续集和嵌套结果?

Sequelize允许数据关系,但我似乎无法看到是否有办法让它返回由关系组成的查询结果? 我可以做这两个查询,但我很好奇Sequelize是否提供这个? 例如播放列表和播放列表条目: Playlist: sequelize.define('playlist', { name: Sequelize.STRING, description: Sequelize.STRING }), PlaylistEntry: sequelize.define('playlist_entry', { playlist: Sequelize.INTEGER //track: Sequelize.INTEGER }) PlaylistEntry.belongsTo( Playlist, { as: 'Playlist', foreignKey: { name: 'fk_playlist' }}); 我会希望的(伪代码): 查询: Playlist.find(where: {id: playlistId}, nestedResult: true); 结果: [{ id: 123, name: 'abc' playlistEntries: [{ id: 321, track: 431 }] }]

NodeJS护照Facebook OAuth

我一直在学习NodeJS的课程和教程,并决定在一个应用程序中使用它们。 对于这个项目,我需要用户注册并login才能将其活动存储在数据库中。 我使用Passport来做这个过程,这个项目的这个部分的代码是这样的: /****** Passport functions ******/ passport.serializeUser(function (user, done) { done(null, user.id); }); passport.deserializeUser(function (id, done) { db.user.findOne( { where : { idUser : id } }).then(function (err, user) { done(err, user); }); }); //Facebook passport.use(new FacebookStrategy({ //Information stored on config/auth.js clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, callbackURL: configAuth.facebookAuth.callbackURL, profileFields: ['id', 'emails', 'displayName', 'name', 'gender'] }, […]

调用存储过程中的sequalize参数传入

我试图调用一个存储过程传递参数如下所示。 但是,我知道我的语法是closures的,我没有看到任何例子,无论是在文档或unit testing。 model.sequelize.query('CALL truncate_tables(\'appuser\');') .then(function (response) { done(); }).error(function (err) { done(err); }); build议? 我开始看这个链接。 在Sequelize.js中调用存储过程 附加信息: 这是我看到的错误 Unhandled rejection SequelizeDatabaseError: syntax error at or near "CALL" 这里是sp CREATE OR REPLACE FUNCTION truncate_tables(username character varying) RETURNS void AS $BODY$ DECLARE statements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = username AND schemaname = […]

sequelize DataTypes TypeError:无法读取未定义的属性“INTEGER”

定义模型时,我有一个续集DataTypes.INTEGER问题。 我在电子书中标题为“使用Node.js构buildAPI”的示例。 我是一个试图抓住快递和续集的新手。 任何帮助非常感谢。 谢谢。 错误详情: > /home/xxx/workspace/ntask-api/models/tasks.js:9 > type: DataTypes.INTEGER, > ^ TypeError: Cannot read property 'INTEGER' of undefined > at Function.module.exports (/home/xxx/workspace/ntask-api/models/tasks.js:9:21) > at Consign.into (/home/xxx/workspace/ntask-api/node_modules/consign/lib/consign.js:239:17) > at Object.<anonymous> (/home/xxx/workspace/ntask-api/index.js:13:5) > at Module._compile (module.js:456:26) > at Object.Module._extensions..js (module.js:474:10) > at Module.load (module.js:356:32) > at Function.Module._load (module.js:312:12) > at Function.Module.runMain (module.js:497:10) > at startup […]

Node.js,sequelize和Unknown列

我读了类似的问题: 在“字段列表”中将未知列“* .createdAt” 但解决scheme不适合我! 为什么? 这是我的代码: var User = sequelize.define("User", { id: { type: DataTypes.UUID, primaryKey: true }, cognome: DataTypes.STRING, nome: DataTypes.STRING, email: DataTypes.STRING, password: DataTypes.TEXT, stato: DataTypes.INTEGER, ruolo: DataTypes.INTEGER }, { freezeTableName: true }, { timestamps: false }); 错误是: Executing (default): SELECT `id`, `cognome`, `nome`, `email`, `data_nascita`, `password`, `cellulare`, `stato`, `blacklist`, `createdAt`, `updatedAt` FROM […]

在sequelize.js中禁用updatedAt(更新date)字段

我用sequelize-auto生成架构,我尝试使用findOne() ,我得到这个错误: Unhandled rejection SequelizeDatabaseError: Invalid column name 'updatedAt'. 在我的数据库表中没有字段updatedAt 例如我的表名是Users我的代码是Users.findOne() ,并且在users表中没有updatedAt字段。 db.users= sequelize.import(__dirname + "/models/users"); app.get('/users', function (req, res) { db.user.findOne().then(function (project) { res.json(project); }) }); 如何解决?

按顺序在嵌套的加载中继续不工作

我有四个型号的Tehsil,Ilr,Patwar和Villages。 和他们的联系是 Tehsil – > 1:m – > Ilr – > 1:m – > Patwar – > 1:m – >村庄 我想要在我所有的四个模型上应用顺序。 查询: var tehsilQuery = { include: [{ model: Ilr, as: 'GirdawariKanoongo', include: [{ model: Patwar, as: 'GirdawariPatwar', include: [{ model: Villages, as: 'GirdawariVillages', }] }] }], order: [ ['tehsil_name', 'ASC'], [ {model: Ilr, as: […]

只更新sequelize中的一行

我使用Sequelize作为ORM与express.js以下是我的简约表结构。 Id status phone 1 0 09620701828 2 0 09620701828 现在,当一个API请求是在一个端点上,那么我必须更新属于我从请求中获得的特定电话的最后一个ID的状态。 原始的MySql查询将为UPDATE table SET status=1 where phone='09620701828' ORDER BY id DESC LIMIT 1; 我如何使用Sequelize更新方法来实现相同的function。 以下是我所尝试过的 models.customerLeadFeedback.update( {status: 1}, { where: {phone : '09620701828'}, order: [['id', 'DESC']], limit : 1 }).then(function () { res.sendStatus(200); })` 但子句顺序不工作以上和更新状态为ID 1.任何人都可以帮助我,而不使用原始查询sequelize 。

Sequelize – 不区分大小写

我怎么能在Sequelize中实现这个? SELECT * FROM table where lower(column) LIKE ('abcd%'); 我找不到一个方法来混合更低的function与$像

使用与bcryptasynchronous的Sequelize

这可能是基于意见的。 但我想得到一些build议。 所以,我想要做的事情可以用这个线程中提到的方式来完成。 但是这个线程为我想要使用asynchronous做了一个好点。 这是我到目前为止,它的工作原理。 User.create({email: req.body.email, password: req.body.password}).catch(function(err){ console.log(err); }); User.beforeCreate(function(user) { const password = user.password; user.password = ''; bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) { if(err) console.error(err); bcrypt.hash(user.password, salt, null, function(err, hash) { if(err) console.error(err); user.password = hash; user.save(); }); }); }); 由于我使用bcryptasynchronous,我将不得不坚持encryption的密码在另一个查询。 我的直觉告诉我可能有一个更好的方式使用bcryptasynchronous与sequ​​elize。 我的问题是,首选/更好的方法是什么? 或者我应该只是同步使用bcrypt?