Tag: postgresql

node-postgres创build数据库

我正在使用node-postgres ,并在我的应用程序的开始,我想检查数据库是否存在。 所以我的工作stream程如下: 检查myDb是否存在 如果有,请创build表格 如果不是,则先创build数据库,然后创build表 正如你所看到的,这是一个非常简单的过程,但是,驱动程序的实现需要有一个数据库名postgres://username:password@host/database来连接,这意味着你需要首先连接到数据库。 所以我现在所做的是在开始时连接到postgres数据库,创build一个查询来创build数据库,如果它已经存在,则closuresexception,然后closures连接并连接到新创build的数据库,然后创build表。 这里是代码: var conStringPri = 'postgres://' + username + ':' + password + '@' + host + '/postgres'; var conStringPost = 'postgres://' + username + ':' + password + '@' + host + '/' + dbName; pg.connect(conStringPri, function(err, client, done) { // connect to postgres db if (err) […]

带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) => { // […]

使用docker的nodeJS上的PostgreSQL的ECONNREFUSED

我正在使用postgresql构build在NodeJS上运行的应用程序。 我使用SequelizeJS作为ORM。 为了避免使用真正的postgres守护进程并在自己的设备上使用nodejs,我使用了docker-compose的容器。 当我运行docker-compose up它会启动pg数据库 database system is ready to accept connections 和nodejs服务器。 但服务器无法连接到数据库。 Error: connect ECONNREFUSED 127.0.01:5432 如果我尝试在不使用容器的情况下运行服务器(在我的机器上使用真正的nodejs和postgresd),它就可以工作。 但是我希望它能够正确地使用容器。 我不明白我在做什么错。 这里是docker-compose.yml文件 web: image: node command: npm start ports: – "8000:4242" links: – db working_dir: /src environment: SEQ_DB: mydatabase SEQ_USER: username SEQ_PW: pgpassword PORT: 4242 DATABASE_URL: postgres://username:pgpassword@127.0.0.1:5432/mydatabase volumes: – ./:/src db: image: postgres ports: – […]

使用分组和连接

我在PostgreSQL数据库上有两个表,合同和付款。 一份合同有多个付款。 我有以下两个模型: module.exports = function(sequelize, DataTypes) { var contracts = sequelize.define('contracts', { id: { type: DataTypes.INTEGER, autoIncrement: true } }, { createdAt: false, updatedAt: false, classMethods: { associate: function(models) { contracts.hasMany(models.payments, { foreignKey: 'contract_id' }); } } }); return contracts; }; module.exports = function(sequelize, DataTypes) { var payments = sequelize.define('payments', { id: { type: […]

在Sequelize中使用实例方法

有人可以帮我理解如何在Sequelize中使用实例方法吗? 我已经阅读了文档,但发现它是稀疏的。 目前,我正在尝试在我的用户模型上使用setPassword和verifyPassword实例方法。 当我尝试调用REPL中的代码时,在导入用户模型并同步数据库之后,我得到以下结果: > models.User.setPassword('test'); TypeError: Object [object Object] has no method 'setPassword' 以下是用户模型的代码: var bcrypt = require('bcrypt'); module.exports = function(sequelize, DataTypes) { return sequelize.define('User', { email: { type: DataTypes.STRING, unique: true, allowNull: false, validate: { isEmail: true } }, password: { type: DataTypes.STRING, allowNull: false}, firstName: {type: DataTypes.STRING}, lastName: {type: DataTypes.STRING}, companyName: {type: […]

我如何定义Sequelize.STRING的长度?

我想在sequelize中定义一个数据types的长度。 有我的源代码: var Profile = sequelize.define('profile', { public_id: Sequelize.STRING, label: Sequelize.STRING }) 它创build一个带有数据types为varchar(255)的public_id的表格configuration文件。 我想用varchar(32)定义一个public_id。 我search了文档和堆栈,但找不到任何答案… 我该怎么做?

用于PostgreSQL连接nodejs的SSL

我试图连接到我的Heroku PostgreSQL数据库,我不断收到SSL错误。 有没有人有关于如何在连接string中启用SSL的想法? postgres://user:pass@host:port/database; 一直在寻找它,但它似乎并不是一个非常受欢迎的话题。 顺便说一下,我正在运行Nodejs和node-pg模块及其连接池方法: pg.connect(connString, function(err, client, done) { /// Should work. }); 非常感谢意见。

Postgres Hstore vs. Redis – performance明智

我在Postgres上阅读了Redis提供的HStore。 我们的应用程序是用NodeJS编写的。 两个问题: 性能方面,Postgres HStore与Redis相当? 对于会话存储,你会推荐什么–Redis,或Postgres与其他types的数据types(如HStore,或者甚至通常的关系表)? 一个选项与另一个选项有多差? 另一个限制是,我们需要使用PostgreSQL中已经存在的数据,并将其与活动会话(如果在Redis或PostgreSQL中,我们不确定在哪里存储)结合使用。 根据我们所读到的,我们已经指出要使用Redis作为会话pipe理器,但是由于PostgreSQL的限制,我们不确定如何将这两者结合起来,以及可能出现的性能问题。 谢谢!

连接到Heroku PostgreSQL数据库时validation错误

我正在开发一个使用PostgreSQL的Node.js应用程序,并在Heroku上托pipe。 我的问题是,我得到这样的authentication错误: 14:32:05 web.1 | { [error: no pg_hba.conf entry for host "193.40.244.196", user "username", database "database_name", SSL off] 14:32:05 web.1 | length: 168, 14:32:05 web.1 | name: 'error', 14:32:05 web.1 | severity: 'FATAL', 14:32:05 web.1 | code: '28000', 14:32:05 web.1 | detail: undefined, 14:32:05 web.1 | hint: undefined, 14:32:05 web.1 | position: undefined, 14:32:05 […]