Tag: sequelize.js

具有sequelize和节点js的Mysql本机空间函数

我在我的mysql数据库中存储一个POINTtypes的位置: module.exports = function (sequelize, DataTypes) { var Promotion = sequelize.define('promotion', { userId: { type: DataTypes.STRING, allowNull: false }, location: { type: DataTypes.GEOMETRY('POINT'), allowNull: false } 它看起来像点被正确存储: 我试图使用mysql本机ST_MakeEnvelope函数查找一组边界内的所有行。 我用这个postgresql和它完美的工作,但是当我切换到MySQL它开始抛出错误: if (northEastLng && northEastLat && southWestLat && southWestLng) { where.location = { $overlap: db.sequelize.fn('ST_MakeEnvelope', southWestLng, southWestLat, northEastLng, northEastLat) } } promotion.findAll({ where, }) .then(promoters => { […]

很多很多自我参考在sequelize在twitter像web应用程序

我试图build立一个博客networking应用程序作为练习,特别是了解ORM和Sequelize。 我很容易pipe理post和评论以及用户和post之间的关系。 那里没有问题。 当我尝试将用户作为关注者和用户关联到用户时,恐怖就开始了。 我也希望它有可能跟随你自己。 我曾尝试过这样的事情: const User = sequelize.define('user', { firstName: { type: Sequelize.STRING }, lastName: { type: Sequelize.STRING }, email: { type: Sequelize.STRING }, password: { type: Sequelize.STRING }, activated: { type: Sequelize.BOOLEAN } }) User.belongsToMany(User, {as: "Follower", foreignKey: "FollowerId", through: "Follower_Followeds"}) User.belongsToMany(User, {as: "Followed", foreignKey: "FollowedId", through: "Follower_Followeds"}) 并设置关系: app.post("/followhandler", function(req, res) […]

我怎样才能实现这个SQL QUERY的sequelize(多个连接和多个AND / OR)

我一直在努力实现这个(在SQL语句下面)在sequelize一段时间没有运气。 我最初不得不做单独的sequelize查询来获取数据,但这只是提出了很多限制。 `SELECT "Documents".* FROM "Documents" INNER JOIN "AccessTypes" ON "AccessTypes"."id" = "Documents"."accessTypeId" INNER JOIN "Users" ON "Users"."id" = "Documents"."userId" INNER JOIN "Departments" ON "Departments"."id" = "Users"."departmentId" WHERE (("AccessTypes".name != 'private' AND "Departments"."id" = ${req.decoded.departmentId}) OR "Users".id = ${req.decoded.id}) AND ("Documents"."title" ILIKE '%${searchQuery}%' OR "Documents"."content" ILIKE '%${searchQuery}%'` 这是我得到的 var dbQuery = { where: { $or: […]

Sequelize和Node.js:Module.Exports和表模型的问题

我正在一台服务器上安装多个数据库。 要开始这个过程,我要在index.js导出对象中分配一个数据库,这样我可以在构build系统时添加另一个数据库。 以下是该问题的描述。 当我运行server.js文件时,数据库db1的.sync函数同步Table1和Table2,然后开始监听其端口。 它明确的server.js文件正在通过var db = require('./models')接收module.exports = db 。 然而在文件models / Table1.js中 ,服务器抛出一个错误TypeError: Cannot read property 'Table1' of undefined 。 我没有在模型/ Table1.js中检查数据库的控制台输出,它是空的,所以它清晰的module.exports = db在这个模型中没有被访问。 有人可以提供解决scheme来纠正这个问题吗? Table1.js模型和上面列出的其他文件的部分代码如下: 车型/ Table1.js var db = require('./.') […] var new_instance = db.db1.Table1.build({…}) server.js var db = `require('./models')` […] db.db1.sync(function(err) {}); 车型/ index.js var sq = new Sequelize(dbname, user, […]

PassportJsauthentication无限循环和执行(默认)查询

我正在尝试使用PassportJs和Sequelize构build身份validation系统。 我自己使用Sequelize制作了注册系统。 我只想使用PassportJS进行login。 它不会将我redirect到failureRedirect路由,对于SuccessRedirect也不会redirect,但是当提交表单时,它会进入无限循环,并在我的控制台中显示以下消息: Executing (default): SELECT `id`, `username`, `lastName`, `password`, `email`, `phone`, `createdAt`, `updatedAt` FROM `user` AS `user` LIMIT 1; 我的项目的结构是:users_model.js,index.js和users.js(控制器)。 我在我的index.js中的代码如下所示: //===============Modules============================= var express = require('express'); var bodyParser = require('body-parser'); var session = require('express-session'); var authentication= require('sequelize-authentication'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var passportlocal= require('passport-local'); var passportsession= require('passport-session'); var User […]

我怎样才能知道使用mysql的nodejs mysql的更新事件?

我是Nodejs的新手,我想在MySQL上发生更新时向客户端发送数据。 所以我find了ORM,Sequelize。 我可以使用Sequelize从MySQL获知更新事件吗? 或者我怎样才能知道在MySQL上使用Nodejs与MySQL的更新事件?

Sequelize – 将表中的列值与条件相关联

Sequelize – 在哪里条件关联表列 我想要在sequelize模型中执行这个查询: SELECT * FROM `model_game` AS `Game` INNER JOIN `model_activity` AS `Activity` ON `Game`.`ActivityId` = `Activity`.`id` WHERE `Game`.`startAt` > ('2017-03-25 07:37:36'-`Activity.duration`) AND `Game`.`status` = 'NotStarted'; 我尝试使用sequelize.col()函数,但仍然不能poulate的价值。 我的代码如下 My Game model . table name model_game var Game = sequelize.define("Game", { startAt: DataTypes.DATE, status: DataTypes.ENUM('NotStarted','Completed') }, { classMethods: { associate: function(models) { Activity.belongsTo(models.Activity); } […]

模型与Model Sequelize没有关联

我试图在表格之间build立一对多的关系: Exam和Exam_Questions ,使用Sequelize。 即使表格创build正确,我可以看到他们在PhpMyAdmin,我不断收到在控制台中的以下错误: Error: exam_question is not associated to exam! exam.js … const ExamQuestion = require('./exam-question'); … const Exam = sequelizeInstance.define("exam", { name: { type: Sequelize.STRING }, date: { type: Sequelize.DATE } }); // Build the model relations Exam.hasMany(ExamQuestion, { as: "Questions" }); exam-question.js const ExamQuestion = Sequelize.db.define("exam_question", { correct_answer: { type: Sequelize.STRING }, […]

续订一对一的关系

我有两个模型,video和帧。 Frame.belongsTo(models.Video); Video.hasMany(models.Frame, { as: "Frames" }); 我现在需要一种方法来指定一个video的第一帧和最后一帧,但不能得到它的工作。 我试过这个: Video.hasOne(Frame, { as: "FirstFrame" }); Video.hasOne(Frame, { as: "LastFrame" }); 但是这会在“帧”表中创buildFirstFrameId和LastFrameId,而不是“video”表。 我需要有video.get / setFirstFrame()和video.get / setLastFrame()函数可用。 我怎样才能做到这一点?

使用Mocha和Sequelizetesting模型

我想使用Sequelize作为ORM和Mocha / Chai进行unit testing来testingmysql数据库上的CRUD操作。 我testing了插入/删除logging使用HTTP路由,但我会直接testing模型,而不使用任何http连接。 我试图做到这一点,但是当我启动testinglogging不会被添加,我不会收到任何错误。 应用程序/模型/ article.js module.exports = function (sequelize, DataTypes) { var Article = sequelize.define('Article', { title: DataTypes.STRING, url: DataTypes.STRING, text: DataTypes.STRING }, { classMethods: { associate: function (models) { // example on how to add relations // Article.hasMany(models.Comments); } } }); return Article; }; 应用程序/模型/ index.js var fs = require('fs'), path […]