NodeJS 的续集:支持这些功能吗?

2024-04-28

以下是关于sequelize支持的功能的一些问题(续集项目网站 http://sequelizejs.com)在决定是否使用它之前我想澄清一下:

  1. 链接(效率):当链接多个查询时,这些查询是收集到对数据库的一个请求中(作为一批操作),还是每个请求单独发送?

  2. 链接(成功/错误):链接多个查询时,何时发出成功事件以及错误时会发生什么?仅当以下情况时才会发出“成功”all操作成功了吗?如果出现错误,是否会回滚所有操作(即链式操作是否被视为事务)

  3. 过滤关联:说一个Crowd对象具有关系Crowd.hasMany(Person)。您可以通过执行来获取所有关联的人crowd.getPersons(),但是是否可以选择其中的子集,例如crowd.getPersons({where: { age: 30 }})?

  4. 获取通过两个或更多步骤相关的关联对象:说Crowd对象作为关系Crowd.hasMany(Person) and Person有关系Person.hasMany(Pet)。是否有可能通过执行类似的操作来获得人群中的所有宠物crowd.getPersons().getPets(),如果是这样,它会作为多个请求发送到数据库,还是只是一个请求?

  5. “深层”对象:我想将一个人定义为对象:

    sequelize.define('Person', {
        name: {
            first: <a string>,
            last: <a string>
        }
    });
    

    这是允许的吗? (请注意,名称不会是数据库表的列,但第一个和最后一个会是)

  6. “计算”对象:是否可以向对象添加一个根据对象的其他字段计算得出的字段?例如:

    sequelize.define('Person', {
        name: {
            first: <a string>,
            last: <a string>,
            full: <name.first + ' ' + name.last> // <-- this field
        }
    });
    

    所以这样name.full字段实际上并不存储在数据库中(这是浪费空间),而是只是根据其他两个计算出来的?


1.:您可以使用 QueryChainer 进行超级批量处理。尽管如此,每个命令都将单独执行。

2.:使用QueryChainer,只有在一切正常的情况下才会触发成功事件。如果发生一个或多个错误,则会触发错误。绑定方法的第一个参数将是一个错误数组。

3.:嗯,我不是 100% 确定,但恕我直言,它还不受支持。

4.:不,不可能,但更复杂且不那么花哨:

crowd.getPeople().success(function(people) {
  people.forEach(function(person){
    person.getPets().success... // you have to collect them on your own
  })
})

5.:不。但我也不明白你为什么要这样做。

6.:是的,检查一下http://sequelizejs.com/docs/1.7.8/models#expansion-of-models http://sequelizejs.com/docs/1.7.8/models#expansion-of-models and:

Person = sequelize.define('Person', {foo:Sequelize.STRING}, {
  instanceMethods: {
    fullname: function() {
      return this.firstName + ' ' + this.lastName
    }
  }
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS 的续集:支持这些功能吗? 的相关文章

  • 我应该保留远程数据库的本地副本吗?

    我正在开发一个应用程序 基本上允许人们创建 加入和管理其他人的群组 群组内的人也可以互相发送消息 我一直在想哪条路会更好 保留包含所有信息的远程数据库 包括发送给用户和从用户发送的消息 并让应用程序在每次需要信息时查询服务器 甚至是它以前见
  • 运行 pm2 记录错误 SyntaxError: Unexpected token

    我想查看我的项目的日志 Steps 我克隆了一个套接字应用程序 然后我跑npm install pm2 g安装pm2 I run pm2 start 有用 它显示我的套接字应用程序的表格 但如果我跑pm2 logs查看日志 存在这样的错误
  • 获取 Promise 的值并分配给变量

    utility fetchInfo 返回一个 Promise 对象 我需要能够获取此 Promise 对象的值 并将其值分配给一个变量 以便稍后在我的代码中使用 此刻 我可以愉快地打印出result到控制台 但我需要能够将此值分配给myVa
  • 如何使用 Sails.js 和 Waterline 更新 MongoDB 子文档中的特定键?

    当尝试使用 Sails js 和 Waterline ORM 更新 MongoDB 子文档中的单个键时 我遇到了问题 这就是我的person js模型看起来像 module exports attributes name type stri
  • 如何在 Mongoose 中执行查找查询?

    我在 mongodb 中有一组电子书数据 例如 id ObjectId 58b56fe19585b10cd42981d8 cover path D Ebooks uploads ebooks cover 1488285665748 img1
  • 如何编写自己的CasperJS模块?

    例如 我有一个经常需要执行的步骤 例如在某些测试之前用户登录 如何为 CasperJS 编写可重用的代码块 他们的扩展 CasperJS 的文档只为一个文件编写 Thanks 这是一个简单的方法 如果不熟悉 CoffeeScript 请在
  • 如何使用expressjs发送多个文件?

    我希望能够发送许多文件 如果可能的话 发送整个目录 以便我可以在从 html 文件调用的其他 js 文件中访问它 const app require express const http require http Server app co
  • libicui18n.so.52:无法打开共享对象文件

    我一直在使用 libicu 来检测在 docker ubuntu 内部运行的节点应用程序中的字符集 这是通过模块完成的节点 icu 字符集检测器 https github com mooz node icu charset detector
  • CoreMongooseArray 到普通数组

    我正在从一个架构中选出 2 个元素 并希望在另一个架构中进行更新 为此 我使用切片方法将数组中的前 2 个元素列入候选名单 但我越来越 CoreMongooseArray 元素1 元素2 而不是 元素1 元素2 如何删除 CoreMongo
  • PHP 数据库显示在具有不同锚标记的相同字段中

    我四处寻找 看看这是否可行 但却空手而归 首先 这是我的代码 div style display none div ul li li li li li li ul
  • WebPack 源映射令人困惑(重复文件)

    我决定在我今天正在启动的一个新项目上尝试 WebPack 并且我从源映射中得到了非常奇怪的行为 我在文档中找不到任何相关信息 在浏览 StackOverflow 时也找不到其他人遇到此问题 我目前正在查看由以下公司制作的 HelloWorl
  • 使用 Bluebird.js 和 Twitter 流的 Promise 和流

    我对 Promises 和 Node 非常陌生 并且对在流中使用 Promise 感到好奇 我可以承诺直播吗 使用 Bluebirdjs 和 Twit 模块 我有以下内容 var Twit require twit var Promise
  • Puppeteer 的行为与开发者控制台不同

    我正在尝试使用 Puppeteer 提取此页面的标题 https www nordstrom com s zella high waist studio pocket 7 8 leggings 5460106 https www nords
  • 寻找免费的 GUI 工具来使用 PostgreSQL [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目前 我正在使用独立的 GUI 工具DbSchema http www dbschema com 设计
  • 如何从许多相似的名称中标准化城市名称

    我从第三方 API 获取城市名称 该 API 不返回规范化的城市名称 例如 有时其San Francisco 有时它的San Francisco CA 有时它的San Francisco USA 我不需要街道地址等 我只需要将城市名称规范化
  • ORDER BY id 或 date_created 显示最新结果?

    我有一个表 实际上有几个 我想首先从中获取最新条目的结果 这是我的ORDER BY条款选项 date created INT 从不改变值 id 当然是INT AUTO INCRMENT 两列应同等地代表记录插入的顺序 我自然会使用date
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • python 没有名为serial的模块

    我的 python 程序有问题 我编写了程序来将数据 温度 从 arduino 获取到我的树莓派 sqlite 数据库 但它在第 4 行 导入串行 处给了我一个错误 提示 ImportError 没有名为串行的模块 我使用 python3
  • 使用 node.js 获取正在运行的进程的 stdin/stdout

    我正在从节点启动一个进程child process spawn http nodejs org docs v0 6 1 api child processes html child process spawn处理 process stdou
  • nodeJS exec 不适用于“cd”shell cmd

    var sys require sys exec require child process exec exec cd home ubuntu distro function err stdout stderr console log cd

随机推荐