Articles of sequelize.js

如何使用JOIN查询使用sequelize将模型数组添加到节点js中的另一个模型

所以我正在将应用程序从JAVA移动到Nodejs。 其中一个数据库模式分为源和事实。 每个来源可以有多个事实,每个事实都被分配给一个来源。 现在在JAVA中运行以下查询: SELECT SRC.SRC_ID, SRC.SRC_NM, FACTS.FACT_ID, FACT_NM, FACT_VAL FROM TDAV_ALM_SRC_REG_M SRC LEFT OUTER JOIN TDAV_SRC_FACTS_M FACTS ON SRC.SRC_ID = FACTS.SRC_ID WHERE SRC.SRC_ID = ? 我使用下面的映射规则,在xml中定义: <resultMap id="sourceResult" type="com.sec.davs.olap.dto.OLAPSourceConfigDto"> <result property="src_id" column="src_id"/> <result property="src_nm" column="src_nm"/> <collection property="factsList" ofType="com.sec.davs.olap.dto.OLAPFactsDto"> <result property="fact_id" column="fact_id"/> <result property="fact_nm" column="fact_nm"/> <result property="fact_val" column="fact_val"/> </collection> </resultMap> 这里OLAPSourceConfigDto和OLAPFactsDto是POJO,而OLAPSourceConfigDto有一个在其中定义的OLAPFactsDto数组。 现在我得到的结果如下: { "result": { […]

Sequelize.define不是一个函数

我最近开始玩node.js,所以我是新来的。 在node.js控制台中出现以下错误无法上传图片,显然是因为我的评分,请点击链接 以下是我的代码。 var Sequelize = require('sequelize'); const dbConfig = new Sequelize('Mike_Test', 'sa', '[DBPASSWORD]', { host:'179.27.69.555', dialect: 'mssql', port: 1433, pool: { max: 5, min: 0, idle: 10000 }, }); //Model Schhema function createDB(){ var Customer2 = Sequelize.define('Customers2', { Name: { Name: Sequelize.STRING, allowNull: false }, Email: { Email: Sequelize.STRING, allowNull: false }, Phone: { […]

通过相同的外键将多个连接的查询合并到同一个表中

给定一个像这样的模式: posts – id – userId postTags – id – postId – type – value 这是在Sequelize中build立的 Posts.hasMany(PostTags(sequelize), { as: 'tags', foreignKey: 'postId' }); 为了进行过滤,我们需要对不同的标签types/值的组合进行dynamic查询。 这是我想要生成的那种SQL: select posts.* from posts inner join postTags pt1 on pt1.postId = posts.id and pt1.type = 'language' and pt1.value = 'javascript' inner join postTags pt2 on pt2.postId = posts.id and pt2.type […]

Sequelize:无法通过级联删除“通过”表格行

[下面我必须承认,由于我对包的不熟悉,我可能没有按照续集来使用正确的术语] 嗨,我有两张桌子(A,C),通过'B'关系 A.belongsToMany(C, { through: { model: B, } }); C.belongsToMany(A, { through: { model: B, } }); 请注意,表B有一个独立于A和C的附加数据列。使用此系统时,我可以在表A中创build新行时成功创build表B中的行(带或不带额外列的数据)或表B. 但从A或C中删除(销毁)行不会级联删除相应的B行。据我可以从文档和其他类似的问题,在本网站和其他人,onDelete:“cascade”是默认设置。 如果我尝试在模型中包含它,B的行仍然不删除。 我注意到了一件似乎很奇怪的事情。 根据文档,关于表B的信息应该直接提供给我,如果我有一个对象表示一行表A或表C.(例如a.get('B')将返回一个表示一行表的对象B)。 执行a.get('B')会返回对象b,但执行c.get('B')不会。 这是一个线索吗? 还要注意,无论我是销毁表A还是表C的行,表B的行都不会删除 非常感谢

如果所有进程完成,如何退出节点js脚本

我是新的节点js。 我正在使用for循环以不同的值多次启动相同的函数。 我也在使用请求从网站上抓取数据。 但是,如果我完成了我所有的脚本不会自动结束的过程。 由于许多原因,如请求连接不closures等。它是asynchronous运行,所以我不能手动closures它。 如果我使用process.exit(); 在for循环的最后一行,它在运行函数之前立即closures。 如果我的for循环完成,如何退出这个脚本? 请帮帮我。 我的工作代码是: const request = require('request'); const cheerio = require('cheerio'); const Sequelize = require('sequelize'); var redis = require("redis"), client = redis.createClient(); var id = [20434, 21794, 21825, 21350, 20753, 20451]; const sequelize = new Sequelize('xyz', 'root', 'root', { host: 'localhost', dialect: 'mysql', pool: { max: 5, min: […]

在创build模型时产生连接错误

当我执行这个程序时,一切工作正常: const Sequelize = require("sequelize"); const Conn = new Sequelize("data","postgresql","postgresql", { 'host' : "localhost", 'dialect' : "postgres", 'port' : "1337" }) // piece of code to be added here Conn.sync().then(function(){ console.log('DB connection sucessful.'); }, function(err){ console.log(err); }); 控制台日志: DB connection successful. 当我添加这条线: const User = Conn.define('user', { firstName: { type: Sequelize.STRING }, lastName: { type: […]

Sequelize – Mysql的外键添加约束失败与ALTER TABLE

我试图用下面的Sequelize模型创build两个表: const Sequelize = require('sequelize'); module.exports = function (db) { const Product = db.define('product', { intProductID: { type: Sequelize.INTEGER(11), primaryKey: true, autoIncrement: true, allowNull: false }, strName: { type: Sequelize.STRING }, douPrice: { type: Sequelize.DOUBLE } }); return Product; } const Sequelize = require('sequelize'); module.exports = function(db){ const User = db.define('user', { intUserID:{ type: Sequelize.INTEGER, […]

A与B没有关联

在互联网上看到类似的问题/错误,没有一个帮助我… 未处理的拒绝SequelizeEagerLoadingError:任务未关联到用户! 我的用户路由 router.get('', function (req, res) { models.User.findAll({ include: [ { model: models.Task, as: 'tasks' } ] }).then(function (users) { res.send(users); }); }); 用户模型 'use strict'; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { first_name: DataTypes.STRING, last_name: DataTypes.STRING, email: DataTypes.STRING }, { underscored: true }); User.associations = function (models) { User.hasMany(models.Task, […]

Sequelize – 按降序获取值

我使用sequelize连接到mysql数据库。 我有2个表ApplicationVersion和提供者在我的数据库。 两个表都是关联的。 ApplicationVersion将Provider'uuid'作为外键。 在我的提供程序表中,我有一个名为weight的列。 这个权重字段有整数值。 我想以降序显示元素。 所以我已经在我的函数中使用了这一行order: [Sequelize.col('weight'), 'DESC'],但它不起作用。 如果我从它删除命令,该function运作良好。 这个function: function getactiveProvidersList(user, callback) { Provider.findAll({where: {enabled: 1}, include: [{ model: ApplicationVersion, where: {'active': true}, }], order: [Sequelize.col('weight'), 'DESC'], }).then(function(providers) { callback(providers); }); } 你能告诉我这样做的正确方法,也是我搞砸了。 任何build议是有帮助的。 谢谢!

inputtypes字段validation失败时如何停止上传图像?

访问Web服务后,如果validation失败,则上传图像。 我需要控制它。 如果validation成功,则应该上传图像。 我已经在由sequelize创build的模型中定义了validation代码。 如果validation成功,如何防止并上传图像? 型号代码是 name : { type : sequelize.STRING, validate : { notEmpty : {msg : 'The Name is required!'} } }, email : { type : sequelize.STRING, validate : { notEmpty : {msg : 'The email field is required!'}, isEmail : {msg : 'The email format is not correct!'} } }, […]