Tag: sequelize.js

返回嵌套的错误,并承诺ExpressJS / NodeJs

我从函数调用返回错误有点混淆。 例如,我使用sequelizeJS来说明这一点。 一般: First.Ctrl var second_ctrl = require( '../ctrl/second'); testCode : function(req, res, next){ return second_ctrl.getData() .then(function(resultData){ res.json(resultData); }) .catch(function(error){ res.json(error) }) } Second.Ctrl getData : function(){ return models.Data.findAll() } getData findAll中的任何错误都会转到first_ctrl的catch块。 但是,如果我必须做一些操作,如: Second.Ctrl – 操作 getData : function(){ return models.Data.findAll() .then(function(result){ if(result == null) throw new Error ('No data found'); return result; }) .catch(function(error){ […]

在将nodejs部署到Heroku时抛出错误URL

我有一个node.js服务器在本地主机上成功运行。 但是当我部署到Heroku,服务器崩溃。 我检查本地和heroku有相同的node.js和npm版本。 希望收到你的build议。 谢谢。 这里是消息日志: 2017-01-13T04:16:32.949664+00:00 app[web.1]: > golaundryserver@1.0.0 start /app 2017-01-13T04:16:32.949665+00:00 app[web.1]: > node server.js 2017-01-13T04:16:32.949665+00:00 app[web.1]: 2017-01-13T04:16:33.344617+00:00 app[web.1]: url.js:87 2017-01-13T04:16:33.344629+00:00 app[web.1]: throw new TypeError('Parameter "url" must be a string, not ' + typeof url); 2017-01-13T04:16:33.344630+00:00 app[web.1]: ^ 2017-01-13T04:16:33.344631+00:00 app[web.1]: 2017-01-13T04:16:33.344633+00:00 app[web.1]: TypeError: Parameter "url" must be a string, not undefined 2017-01-13T04:16:33.344634+00:00 app[web.1]: […]

Sequelize:使用不同的条件查询相同的连接表

我有两个模型Contact和Thread与一个多对多的关系表示在一个连接表ThreadContacts 。 我需要编写一个查询来查找与联系人的确切列表关联的线程 。 例如,我可能有一个contact_id的列表[1,2,3,4],我需要find一个与这4个联系人相关联的Thread 。 我已经尝试包括Contact查找所有查询: Thread.findOne({ include: [{ model: Contact, where: { id: $in: [1, 2, 3, 4] }, }], }) 当然这不起作用,因为它会返回一个线程与任何4个ID都有一个ThreadContact。 我需要这样的东西: Thread.findAll({ include: contactIds.map(id => ({ model: Contact, where: { id }, }), }) 但是,这也不起作用,因为它包括同一模型的重复。 我在这里有什么select? 我很难find解决scheme。

Node.js数据库从具有Sequelize的文件插入

也许我不完全明白承诺或者Sequalize,但是经过一段时间的处理,感觉asynchronousDB操作只适用于简单的情况。 并且通过询问同步数据库访问的问题的数量,它看起来并不是唯一的。 这是我的情况。 假设我们有化合物的CSV文件,其中每行包含有关化合物的信息,以及以分号分隔的其成分列表。 我们希望从其中填充成分表,但没有重复。 例如,如果文件包含行 C1 IngA; IngB C2 IngA; IngC 我们想要三个loggingIngA,IngB和IngC的成分表。 所以当阅读行时,应该保存复合体,对于每个成分检查是否已经存在,如果不添加。 这里是代码: var lineReader=require('readline').createInterface({ input: require('fs').createReadStream(filename) }); lineReader.on('line', function(line) { let parts=line.split('\t'); compoundModel.create({ name: parts[0], }).then(entity => { let ingredients=parts[1].split(';'); ingredients.forEach((ing, index) => { ingModel.findOne({ where: {name: ing} }).then(ingEntity => { if (ingEntity) { return ingEntity; } return ingModel.create({ name: ing }) […]

Sequelize:根据请求在运行时连接到数据库

我正在做一个node.js应用程序,我需要连接到多个数据库。 其中一个数据库是中央数据库,其中包含所有人共同的信息。 然后有根据国家储存数据的国家级数据库。 我在应用程序中使用续集ORM。 数据库是postgresql。 框架是明确的。 问题是我想根据请求使用哪个数据库来决定运行时间,模型应该自动连接到适当的数据库。 我已经看到这个问题,但没有发现它有帮助。 我也检查了另一个论坛,但没有发现任何东西。

什么是在Nodejs中使用 – Sequelize删除空格插入数据库时​​使用

在插入数据库之前,我使用Trim()方法从数据中删除空格。 我正在使用Nodejs和Sequelize。 但有没有东西是用来做到这一点,例如,如果我有数组,通过这个数组,而不是遍历所有元素去除空格? 谢谢。

我应该在哪里写模型或控制器查询(续集)?

我试图找出我应该在节点js应用程序中使用sequalize作为ORM编写查询的位置。 例如,我有一个模型地址,我写数据是这样的: let adr = await Address.create({street, number, city, state, country}) 我应该将这些代码写入控制器,在那里获取数据还是在模型中,然后传递给模型的方法(例如整个对象地址)? 最佳做法是什么? 我认为把它写在模型中更好,因为我可以在许多控制器中使用相同的代码。 但也许还有一些其他的限制。

使用Sequelize和nodejs修复已弃用的问题

有人可以告诉我,我需要做些什么来解决下面图片中显示的弃用问题? 我需要为此做些什么? var Sequelize = require("sequelize"); var connection = new Sequelize('databaseschemaname','nodejs','replacewithpassword', {host: 'localhost', dialect: 'mysql'}); const Op = Sequelize.Op; var Article = connection.define('article', { title: Sequelize.STRING, body: Sequelize.TEXT }); connection.sync().then(function () { Article.findAll().then(function(articles) { console.log(articles.length); }) });

如何使用sequelize(mysql)来计算angularjs + nodejs的数据?

我在mysql中有三个表 联系 组 ContactGroup 这是我的表结构: var Contact = sequelize.define('contact', { gsm: { type: Sequelize.STRING, unique: true, required: true }, firstName: Sequelize.STRING, lastName: Sequelize.STRING, street: Sequelize.STRING, city: Sequelize.STRING, region: Sequelize.STRING, postcode: Sequelize.STRING, dob: Sequelize.DATE, email: { type: Sequelize.STRING, unique: true, defaultValue: true }, company: Sequelize.STRING, url: Sequelize.STRING, country: Sequelize.STRING, data1: Sequelize.STRING, data2: Sequelize.STRING, data3: Sequelize.STRING, // […]

Sequelize.js使用hasMany连接两次表

我正在使用Sequelize.js在同一个表上执行双连接。 我有一组Team对象和一组Game对象。 一个团队有许多游戏,所以它会在游戏桌上有外键,但是在每个游戏中都有两个团队,所以我需要两次join表格。 什么是使用序列化ORM来做到这一点的最好方法。 Team = sequelize.define('teams',{ name : Sequelize.STRING, location : Sequelize.STRING, }); Game = sequelize.define('games',{ homeTeamId : Sequelize.INTEGER, awayTeamId : Sequelize.INTEGER, location : Sequelize.STRING, }); // Associations Game.hasOne(Team, {foreignKey : 'homeTeamId'}); .hasOne(Team, {foreignKey : 'awayTeamId'}); Team.hasMany(Game); 谢谢!