Tag: pg promise

PostgreSQL返回失败与REGEXP_REPLACE

我正在运行PostgreSQL 9.4,并将大量logging插入到我的数据库中。 插入后,我使用RETURNING子句进一步使用。 当我简单地运行: … RETURNING my_car, brand, color, contact 一切正常,但如果我尝试使用REGEXP_REPLACE失败: … RETURNing my_car, brand, color, REGEXP_REPLACE(contact, '^(\+?|00)', '') AS contact 它失败: ERROR: invalid regular expression: quantifier operand invalid 如果我直接在PostgreSQL中直接运行查询,它可以工作并返回一个很好的输出。

有没有办法在pg-promise中触发一个不会影响外部事务的内部事务?

在pg-promise我有一种情况需要触发一个内部事务,如果需要的话可以回滚,这不会导致调用事务在错误时被回滚: var db = pgp()(connection); db.task( function (tk){ tk.method(/* Logic used to decide if I need to continue */) .then( function(data){ if (!data) return; tk.tx( function*(tx){ // Somewhere in here I need to fire another transaction that I don't care if it fails // but I need things to roll back inside of it should […]

使用node.js并承诺获取分页数据

请记住,我是node.js的新手,我使用的是android开发。 我的情况是这样的: 针对返回null或值的数据库运行查询 使用该数据库值调用Web服务,该数据库提供分页信息,这意味着在调用中,如果有更多信息要获取,我将获得一个参数以传递给下一个调用。 所有的项目被检索后,将它们存储在数据库表中 如果一切正常,对于以前收到的每件商品,我需要再次进行networking通话,并将检索到的信息存储在另一个表中 如果提取任何数据集失败,则必须从数据库中恢复所有数据 到目前为止,我已经试过这个: getAllData: function(){ self.getMainWebData(null) .then(function(result){ //get secondary data for each result row and insert it into database } } getMainWebData: function(nextPage){ return new Promise(function(resolve, reject) { module.getWebData(nextPage, function(errorReturned, response, values) { if (errorReturned) { reject(errorReturned); } nextPage = response.nextPageValue; resolve(values); }) }).then(function(result) { //here I need to insert […]

你如何使用pg-promise连接到没有密码的Postgres数据库?

我试图初始化一个连接到我的PG数据库这样做: pgp = require('pg-promise')({ // Initialization Options }), cn = { host: 'activity.postgres.activity', // server name or IP address; port: 5432, database: 'activity', user: 'postgres', password: '' }, db = pgp(cn), 但我不断收到: 错误:连接ECONNREFUSED 172.20.0.3:5432 任何想法为什么? 解决:在postgresql.conf文件中设置listen_addresses ='*'

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提供的实际文档而遇到麻烦。