Articles of pg promise

nodejs应用程序的node-postgres和pg-promise

我将用Postgresql构build一个Nodejs应用程序作为后端。 我不打算使用像Sequelize这样的ORM, 因为文档和性能问题很糟糕,或者其他ORM – ORM是反模式 。 我发现node-postgres和pg-promise是这方面的候选人。 那么,任何人都可以澄清一个工具比另一个更好的scheme,或者哪一个工具是描述的方式,前提是node-postgres自2010年以来一直在发展,自2015年起pg-promise。

NodeJS和pg-promise,捕获PostgreSQLexception

我正在运行NodeJS和pg-promise以及PostgreSQL后端。 我创build了自己的TRIGGER,在某些情况下会引发exception。 事情在这方面正常工作。 但是有了pg-promise,我很难捕捉错误的名字。 使用这个代码: … .catch(function(err) { console.log(err); }); 我得到以下输出: [ { success: false, result: { [error: vote_limit_exceeded] name: 'error', length: 80, severity: 'ERROR', code: 'P0001', detail: undefined, hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'pl_exec.c', line: '3068', routine: 'exec_stmt_raise' […]

用pg-promise插入多个logging

我有一个场景,我需要插入多个logging。 我有一个表结构,如ID(这是从其他表fk),键(字符),值(字符)。 需要保存的input是上述数据的数组。 例如:我有一些数组对象,如: lst = []; obj = {}; obj.id= 123; obj.key = 'somekey'; obj.value = '1234'; lst.push(obj); obj = {}; obj.id= 123; obj.key = 'somekey1'; obj.value = '12345'; lst.push(obj); 在MS SQL中,我将创buildTVP并通过它。 我不知道如何在postgres中实现。 所以现在我想要做的就是使用pg-promise库在postgres sql的单个查询中保存列表中的所有项目。 我无法从文档中find任何文档/理解。 任何帮助赞赏。 谢谢。

带pg-promise的多行插入

我想用一个INSERT查询插入多行,例如: INSERT INTO tmp(col_a,col_b) VALUES('a1','b1'),('a2','b2')… 有没有办法很容易做到这一点,最好是像这样的对象数组: [{col_a:'a1',col_b:'b1'},{col_a:'a2',col_b:'b2'}] 我可能会在一个块中产生500条logging,所以运行多个查询将是不可取的。 到目前为止,我已经能够只为一个单一的对象: INSERT INTO tmp(col_a,col_b) VALUES(${col_a},${col_b}) 作为一个侧面的问题:插入使用${}符号保护反对SQL注入?

在启动应用程序时validation与pg-promise的数据库连接

我正在构build一个使用pg-promise模块连接到postgres数据库的快速应用程序。 我想确保启动应用程序服务器时数据库连接成功。 换句话说,如果连接到数据库失败,我想抛出一个错误。 我的server.js文件如下: const express = require("express"); const databaseConfig= { "host": "localhost", "port": 5432, "database": "library_app", "user": "postgres" }; const pgp = require("pg-promise")({}); const db = pgp(databaseConfig); const app = express(); const port = 5000; app.listen(port, (err) => { console.log(`running server on port: ${port}`); }); 无论数据库连接是否有效,当前的configuration都将启动快速服务器,这不是我想要的行为。 我尝试浏览文档,但找不到解决scheme。 我也试过const db = pgp(databaseConfig).catch((err) => { // […]

如何设置Babel 6与节点JS在我的服务器端代码中使用ES6?

我已经阅读了多次提供的文档: Node API Babel 6 Docs 我开始学习pg-promise,遵循“按示例学习”教程,并且倾向于使用ES6和通过Babel转储到ES5,但是我不确定一些事情: 在安装babel-core之后,我将使用什么预设以及在哪里/如何configuration此function? 我不清楚我把哪个文件放在文档里: require(“babel-core”)。transform(“code”,options); 进入和代码的哪些部分是占位符。 当我使用这个代码时,我是否只是在某处使用它,然后我可以在其他文件中使用ES6? 这将如何实现? 我读了这个.babelrc文件,并想确认如果实际的文件名是“.babelrc”,或者如果这只是文件的扩展名,并在哪里与我的项目的根目录,我把该文件..以及如何做我链接到它? 如果我使用pg-promise ,我应该使用ES6和Babel,或者运行:npm install,如pg-promise的Testing部分中所述,是否足够,并尝试使用ES6来创build更多的问题? 如果需要在我的服务器端开发期间出现,我希望利用let和const。 是否有节点+ babel + pg-promise服务器设置的标准文件结构? 编辑值得注意的是,我也阅读了巴巴节点的JS节点 ,看到使用这个应该避免。 最后的答案在底部对我来说没有意义,因为我遇到了类似的问题,因为我根据Babel提供的实际文档而遇到麻烦。