【问题标题】:When using postgresql in Nodejs, how should I query the database from the webserver?在 Nodejs 中使用 postgresql 时,我应该如何从网络服务器查询数据库?
【发布时间】:2016-03-24 11:32:23
【问题描述】:

目前我正在使用 pg 模块。我知道如何查询数据库

client.query("INSERT INTO users(username, password) values($1, $2)", [username, password]

但我想知道是否有一个我不知道的单独模块或在 Node.js 上使用 PostgreSQL 进行查询的“良好实践”方式。特别是如果有一个主键,如用户名。我尝试构建诸如 User.js 之类的模型,但在模型中我仍在对查询进行硬编码。

谢谢

【问题讨论】:

标签: node.js postgresql


【解决方案1】:

我认为更简单的方法是使用 Sequelize ORM 之类的东西。简而言之,Sequelize 将允许您使用 JS 对象编写所有模式和查询。如果你不熟悉它,这里有几个很好的例子here

基本上,这将从您的 Node.js 模块中抽象出许多原始查询代码,并允许您编写更多语法 JS 来与您的数据库进行交互。它还包含 Promise,它可以让您更轻松地绕过 Node 的异步特性,而不是嵌套在彼此内部的查询。

【讨论】:

    【解决方案2】:

    如果您想要为数据层获得任何级别的抽象,knex/bookshelf 就是您想要的。

    最好的部分是你可以选择你想要的抽象级别。

    想要/需要执行原始 sql 查询? knex 可以为您做到这一点。

    想要简洁的查询构建器功能?膝盖也有。

    需要工业 ORM 升降机?有书架。

    奖励:knex 有一个非常不错的迁移工具,这意味着如果您想管理数据库架构版本,您也可以这样做!在处理现实世界的数据库时,迁移工具是避免疯狂的最佳方式。

    试一试:

    http://knexjs.org/

    http://bookshelfjs.org/

    希望对你有帮助,就像对我有帮助一样!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-14
      • 2010-09-08
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多