Tag: sequelize.js

使用Sequelize进行集成testing

我有一个Express web api使用sequelize,我想做端到端的testing。 我希望能够在内存数据库中进行端到端的testing,所以我可以在任何需要我的机器上运行它。 我使用mysql数据库进行开发和生产,但是我正在考虑使用内存中的sqlite数据库进行testing,但我不知道什么是最好的方法是将testing数据放入它。 像squelize-fixtures有几个模块,但他们似乎都不能用数据填充数据库,而不需要编写代码来操作和插入数据。 任何人在这里做集成testingsequelize和sqlite已经find了一个好方法没有所有的样板代码?

续集error handling

看看下面的代码示例,我不知道在最外层的sequelize任务中链接一个.catch()是否足够,而不是在每个看起来相当混乱的任务上链接它。 第二个问题是有可能使.then(instance, error)包含错误对象,如果有的话? 像mongoose那样,第一个参数总是err obj。 所以我不需要.catch一个错误,只需要在.catch .then()callback函数中处理。 function facebookStrategy() { return new FacebookStrategy({ clientID: config.facebook.app_id, clientSecret: config.facebook.app_secret }, function (accessToken, refreshToken, profile, done) { process.nextTick(function () { models.User.findOrCreate({ where: {email: profile.emails[0].value} }).spread(function (user, created) { models.UserPassport.findOrCreate({ where: { // TODO(tsm): check out sequelize composite keys method: 'facebook', social_id: profile.id }, defaults: { method: 'facebook', token: […]

用于Postgers空间索引的Nodejs ORM(如PostGIS)

Postgres是使用PostGIS或其他要素的空间索引良好性(top-k-nearest-points)的首选数据库。 看起来像Node.js ORMs不直接支持空间索引,那么哪一个需要最less量的黑客攻击呢? Sequelize和node-orm-2似乎需要一些黑客来使其工作。 有什么build议么?

使用sequelize.js接口与现有的数据库?

我目前正在一个项目中,我们的Node.js服务器将对现有的MySQL数据库执行大量的交互。 因此,我想知道如果Sequelize是一个很好的库来连接数据库。 从我读过的内容来看,它最常用作数据库的主人。 但在我的情况下,它只会有select,插入,删除访问权限,不能修改和创build表格等。 Sequelize是否支持这种与数据库交互的方法? 如果Sequelize确实对此有效,那么我需要禁用哪些设置才不会遇到麻烦? 在阅读他们的文档后,我找不到任何全局设置,把它变成一个简单的界面工具。 时间戳等可以禁用表定义,但不是全局我看到的。 任何input,不胜感激。

微风续集与MSSQL可能?

目前是可以连接微风 – 续集与MS SQL服务器? 根据Sequelize的文档 ,Sequelize确实支持MSSQL Server。 虽然在微风doc没有列出的MS SQL服务器。 我现在有点困惑。 如果这是不可能的,是微风计划暗示的? 或者有没有其他的方法可以在MSSQL服务器上使用nodejs中的breeze?

Sequelize save()问题

在NodeJS中使用Sequelize我发现模型上的.save()方法存在问题。 假设一个数据库表,其中包含如下条目: { id : 1, name : "mary", enteredCompetition : 1, won : 0 } { id : 2, name : "mark", enteredCompetition : 1, won : 0 } { id : 3, name : "maya", enteredCompetition : 1, won : 0 } { id : 4, name : "maci", enteredCompetition : 0, won […]

sequelize和sequelize-hierarchy:如何在模型getter中执行一个访问器?

我在我的应用程序中使用了sequelize和sequelize-hierarchy ,并且已经部分定义了如下模型: ancestors : { type: orm.Sequelize.VIRTUAL, get: function() { return 'TODO how return getAncestors here?' } } 在getter里面,我怎样才能访问由sequelize-hierarchy提供的getAncestors()方法?

将下划线/蛇的情况下转换为json时加上

使用节点和Sequelize,是否有可能定义一个模型,使用camelCase的属性,但下划线/蛇的情况下,当转换为json? 目前; var User = seq.define('user', { id: { type: Sequelize.INTEGER, primaryKey: true }, shortLivedToken: { type: Sequelize.STRING, field: 'short_lived_token' }, longLivedToken: { type: Sequelize.STRING, field: 'long_lived_token' } }, { underscored: true, underscoredAll: true, }); 调用response.json(user)时变成 { "id": null, "shortLivedToken": "abcde", "longLivedToken": "fghji", "updated_at": "2015-11-21T18:32:20.181Z", "created_at": "2015-11-21T18:32:20.181Z" } 我想要它 { "id": null, "short_lived_token": "abcde", "long_lived_token": […]

NodeJS – 连接到本地的Mysql数据库

我正在尝试为我的节点应用程序创build一个mysql数据库连接,并运行sequelize.authenticate().then(function(errors) { console.log(errors) }); testing连接是否正常工作。 logging到我的控制台的响应是Executing (default): SELECT 1+1 AS result undefined undefined部分让我觉得连接要么不工作,要么没有find任何数据库。 我似乎无法弄清楚。 我想通过Sequel Pro创build一个数据库并通过Socket连接到localhost ,我可以使用相同的凭证来连接我的Node应用程序。 我是否需要在数据库的应用程序中创build文件,而不是使用Sequel Pro数据库? 控制器文件(创build连接的位置): var Sequelize = require('sequelize'); var sequelize = new Sequelize('synotate', 'root', '', { host:'localhost', port:'3306', dialect: 'mysql' }); sequelize.authenticate().then(function(errors) { console.log(errors) }); var db = {} db.Annotation = sequelize.import(__dirname + "/ann-model"); db.sequelize = sequelize; db.Sequelize = […]

从upsert获取插入行的id(insertOrUpdate)Sequelize Node.js

我正在创build一个REST API。 我想实现一个独立的PUT操作,要么创build或更新数据库中的特定资源。 我使用node.js,postgreSQL和sequelize。 问题是sequelize upsert根据资源是否更新或创build返回true或false 。 但是我需要能够发送唯一标识符(列ID)回到客户端,如果资源被创build。 我尝试的一个解决scheme是通过在sequelize findOne查询的“where”属性中指定从客户端发送的每个列来尝试find完全相同的资源。 但是,如果客户端发送不在数据库中的附加列,则会引发错误。 而且在我的实施中不应该这样。 有没有可能实现这个? 最好没有一些性能开销。 谢谢