Articles of sequelize.js

sequelize.js:未处理的拒绝SequelizeForeignKeyConstraintError

我试图插入/更新数据到一个postgresql数据库使用以下function: var updateStudentDataAndReturn = function(req, res, { redirectLink: redirectLink, studentId: studentId }) { models.Student.update({ firstName: req.body.firstName, lastName: req.body.lastName, phoneNumber: req.body.phoneNumber, skypeUsername: req.body.skypeUsername, typeOfStudent: req.body.typeOfStudent, school: req.body.school, expectedYearOfGraduation: req.body.expectedYearOfGraduation, TeamId: req.body.TeamId }, { where: { id: studentId } }).then(() => { return models.StudentMajor.destroy({ where: { StudentId: studentId } }) }).then(() => { return models.StudentSchool.destroy({ where: { […]

无法在string“415”上创build属性“updatedAt”

更新logging时,我有一个问题,而415是id。 无法在string“415”上创build属性“updatedAt” 我也在模型中添加更新字段,但仍然出现错误

我的邮政路线有问题吗?

所以我使用一个简单的CRUD风格的网页sequelize。 我的问题是我能够将input的数据input到mysql工作台,它存储在表中,但在网页本身没有任何反应。 //uses var=Posts which contains the fields userName //and userPosts in my database var db = require("../models"); // route to create posts app.post("/api/posts", function(req, res) { console.log(req.body); db.Posts.create({ userName: req.body.username, userPosts: req.body.user_post, }) .then(function(dbPost) { res.redirect('/dashboard'); res.json(dbPost); }); }); 提前感谢任何帮助!

只获得协会的协会

我目前正在一个项目中,我有3个模型与儿童和父母的结构。 City有多个Location s有多个Stone s。 每块Stone只有一个Location作为父项,每个Location只有一个City作为父项。 现在,我想创build一个“属于”(通过Location )到特定City的所有Stones列表。 我将如何检索所有这些关联,而不必执行以下操作: City.find({ where: { id: 1337 }, include: [{ model: Location, include: [{ model: Stone }] }] }) .then((city) => { city.stones = [].concat.apply([], city.locations.map(location => location.stones)); }); 我试图找出是否有一个“只有SQL”的解决scheme,所以不检索数据/不得不执行JavaScript来产生这个数组。

续集有许多,属于或两者?

我想正确设置一对一或一对多的关系,事实上,如果我在我的模型定义中使用hasOne / hasMany或belongsTo中的任何一个,似乎都可以正常工作。 例如,以下关联会在其目标上创builduserId字段: User.hasMany(Email, { as: 'emails', foreignKey: 'userId', }) User.hasOne(Profile, { as: 'profile', foreignKey: 'userId', }) 但是几乎在官方文档中的任何地方,我都会看到类似于 Projects.hasMany(Tasks); Tasks.belongsTo(Projects); 即hasMany和belongsTo一起使用。 这是真的需要还是只使用其中一个就足够了? 任何进一步的解释将是非常宝贵的。 谢谢!

SequelizeBaseError:列“…”不存在

遇到使用sequelize表的错误join“belongsTo”和“hasMany; SequelizeBaseError:列videos.eventEventId不存在。 我没有在模型或数据库中的这列,并没有引用路由器中的任何地方 – 不知道为什么这个错误是返回时,我没有这个在我的模型或表? 似乎出现在对事件模型的主键的任何引用上。 const Sequelize = require('sequelize') // Heroku postgres db connection const sequelize = new Sequelize(process.env.DATABASE_URL, { dialect: 'postgres', protocol: 'postgres', define: { timestamps: false, }, dialectOptions: { ssl: true } }); // Connect all the models/tables in the database to a db object, //so everything is accessible via one object […]

Sequelize:或者父项where子句和子where子句之间的OR

我有2个模型: const User = sequelize.define('User', { email: { type: DataTypes.STRING, }, password: { type: DataTypes.STRING, }, }); User.associate = (models) => { User.hasOne(models.Profile, { foreignKey: { name: 'user_id', }, }); }; const Profile = sequelize.define('Profile', { name: { type: DataTypes.STRING, }, avatar: { type: DataTypes.STRING, }, }, { tableName: 'profiles', freezeTableName: true, timestamps: false, }); […]

在Chrome中发生Sequelize查询和PUT错误

学生问题! 我正在学习使用Sequelize ORM的Node.js / Express和MySQL数据库。 传统上,在我们简单的应用程序中,在使用Sequelize查询MySQL数据库之后,我们将在Express PUT路由中发出res.redirect('/') ,然后类似如下: app.post("/", function (req, res) { db.Burgers.create({ burger_name: req.body.burger_name }).then(function () { res.redirect('/'); }); }); 当使用findOrCreate()方法创build一个sequelize查询时,我遇到了一个问题。 也就是说,我正在努力寻找将res.redirect语句放在AJAX PUT请求上的位置。 出于某种原因,当我在PUT语句的快速path中附加了res.redirect('/')时,Chromenetworking检查器中将看到重复的PUT请求。 第一个PUT请求显示为(localhost:3000 / devour,input:text / plain,status:302)。 Express服务器接收到PUT请求,并且继续查询成功,更新MySQL数据库中正确的表。 但是,Express路由redirect不成功,Chrome Inpector显示错误“PUT http:// localhost: 3000/404(Not Found)”,当我看到networking选项卡时,我看到第二个PUT请求(localhost: 3000 /,input:xhr,status:404)。 这是Express PUT路线: app.put("/devour", function (req, res) { var customerId; // Check to see if the […]

Where子句在三层嵌套包含失败

我有四个modelDBList: AlarmsDB,MonitorSpotDB,MonitorGroupDB,UserDB 这些modelDB有参考清单: AlarmDB.belongsTo(MonitorSpotDB); MonitorSpotDB.belongsTo(MonitorGroupDB); MonitorGroupDB.hasMany(MonitorSpotDB); UserDB.belongsToMany(MonitorGroupDB, { through: MonitorGroupUserDB}); MonitorGroupDB.belongsToMany(UserDB, { through: MonitorGroupUserDB,}); 现在我想获得相关用户的警报,所以我使用sequelize编写代码: public async getAlarms(limit: number, offset: number, whereQuery: any, whereUser: any): Promise<{ count: number, rows: Alarm[] }> { let alarms = await AlarmDB.findAndCount({ limit: limit, offset: offset, order: [ ["createdAt", "desc"], ], where: whereQuery, include: [ { model: MonitorSpotDB, as: "monitorSpot", […]

无法使用sequelize从MySQL获取数据

我想从MySQL数据库使用sequelize获得数据,然后我想存储在一个variables的数据,如何做到这一点? 我已经尝试使用查询,但我想要使用sequelize做到这一点。 var quisms = function(req, res) { Quicksms.findAll().then(function(data) { res.status(200).json(data) }) .catch(function(error) { res.status(500).json(error) }); };