Tag: postgresql

node-postgres:caching的参数化插入查询,在第二次运行时失败

我试图运行两个使用node-postgres的参数化插入查询:第一个指定主键列,第二个没有。 第二个查询,即使没有指定主键列,失败说,有一个重复的主键。 我的PG表: CREATE TABLE teams ( id serial PRIMARY KEY, created_by int REFERENCES users, name text, logo text ); 重现此问题的代码: var pg = require('pg'); var insertWithId = 'INSERT INTO teams(id, name, created_by) VALUES($1, $2, $3) RETURNING id'; var insertWithoutId = 'INSERT INTO teams(name, created_by) VALUES($1, $2) RETURNING id'; pg.connect(process.env.POSTGRES_URI, function (err, client, releaseClient) { […]

Koa-pg找不到模块页

嘿,所以我试图让Nodejs Koa与使用Koa-pg模块的postgres对话,但我不断收到'找不到模块pg'错误。 我试图按照koa-pg的例子,但已经短了…所以任何意见将如何进步,将不胜感激。 如果创build我的app.js文件如下所示: var koa = require('koa'); var route = require('koa-route'); var koaPg = require('koa-pg'); var roads = require('./controllers/roads'); var app = module.exports = koa(); app.use(route.get('/roads/bbox/', roads.bbox)); app.listen(3000); console.log('listening on port 3000'); 然后创build我的控制器文件如下: var credentials = require('../credentials.js'); var environment = credentials.dev; app.use(koaPg('postgres://' + environment.user + '@' + environment.host + ':' + environment.port + '/' […]

nodejs + pg用callback函数做crud

我正在学习nodejs express + pg 。 如果我想要弄脏,我应该使用第一种方法还是第二种? 它有什么区别? var query = "SELECT EXISTS(SELECT * FROM table WHERE user_email = '" + user_email + "')"; // 1 var result = dbClient.query(query); console.log(result); console.log(result._result.rowCount); // 2 dbClient.query(query, function(err, result) { console.log(result); console.log(result.rows[0].exists); }); 连 … var conString = "postgres://db_admin:pwd@localhost/databasename"; var dbClient = new pg.Client(conString); dbClient.connect();

Postgres SQLjoin了多对多的关系

现在我正在“学习”Postgres SQL。 我有3个表格: 1)用户:userId 2)堆栈:stackId 3)User_Stack:userId,stackId 现在我想获取属于一个用户的所有堆栈,给定userId。 我知道我需要使用联接,但那是我卡住了…我尝试这样的: SELECT * FROM "Stack" LEFT OUTER JOIN "User_Stack" ON ('User_Stack.stackId' = 'Stack.stackId') WHERE "userId" = '590855'; 错误:返回的数据是空的。 PS:那里有没有GUI查询生成器? 或者你有任何其他技巧如何系统地创build查询? 编辑:如果我改变这个查询: SELECT * FROM "Stack" INNER JOIN "User_Stack" ON (User_Stack.stackId = Stack.stackId) WHERE "userId" = '590855'; 我得到以下错误: Kernel error: ERROR: missing FROM-clause entry for table "user_stack" LINE 1: […]

如何关联两个不同的sailsJs项目的模型?

我有一个sailsJs项目,pipe理不同types的用户login,即用户types1,用户types2等。我有另一个sailsJs项目pipe理这些用户提供的服务,所以我需要将用户types模型与他们提供的服务相关联。 达到这个目标的最好方法是什么? 基本上,如果以某种方式,我得到了在其他项目中的所有用户模型的参考,这可以实现。 我读了可安装的钩子,但我不知道如何使用它,并没有很好的教程可用来使用相同的。 请指导我如何实现这一目标。 提前致谢。

复制外键列使用sequelize

我有一个节点项目使用sequelize,并有以下两个表 "use strict"; module.exports = function(sequelize, DataTypes) { var asset = sequelize.define("asset", { description : DataTypes.STRING, maker : DataTypes.STRING, model : DataTypes.STRING, serialNumber : DataTypes.STRING, barcode : DataTypes.STRING, account : DataTypes.INTEGER, usefulLife : DataTypes.INTEGER, downtimeCosts : DataTypes.FLOAT, purchasePrice : DataTypes.FLOAT }, { classMethods: { associate: function(models) { /*Un estado es de muchas categorias, y no […]

批量postgres插入时间戳具有null通过sequalize设置的约束

我用我的节点应用程序使用Postgres和Sequelize。 我已经build立了模型,并允许Sequalize生成表格。 我现在想要使用这样的东西来移动数据。 insert into archive (id,title) select id, title from old_archives; 但是,由于Sequelize使用createdAt和updatedAt列,我得到空错误。 有没有解决的办法? 错误是 错误:“createdAt”列中的空值违反了非空约束。细节:失败的行包含(2,null,Dewerstone Rocks,null,null,null,null,null,null,null)。

查询在第二次执行时挂起

我正在考虑一个注册系统。 我使用节点,expression和我的数据库是PostgreSQL。 我使用最新的PG模块与Postgre进行通信。 我的用户获取function是多用途的,根据用户名或用户名得到用户。 (后端) User.get = function (info,t, fn){ var text; if(t=="id"){ text = "SELECT user.id, user.usrnm FROM user WHERE user.id=$1"; } else{ text = "SELECT user.id, user.usrnm, user.role FROM user WHERE user.usrnm=$1"; } var query = client.query({ text:text, values:[info]}, function(err, result){ if(err) {return fn(err);} query.on("row", function (row, result) { result.addRow(row); }); if(result.rows.length==0){//no user […]

续集链查找与belongsTo

我有三个模型,讨论,用户和消息,其中: Message.belongsTo(models.Discussion, {as: 'discussion'}) Discussion.belongsToMany(models.User, {through: models.UserDiscussion}) 我想获得有关特定用户的所有消息。 从用户,我可以很容易地得到与user.getDiscussions()所有讨论。 但是,我不知道如何在一个请求中find这些消息。 一旦我有讨论arrays,我可以打电话find models.Message.findAll({where: {discussionId: discussions[i].id}}) 对于数组中的每一个讨论,但这是asynchronous的,我不知道如何链接它们,只返回消息。 有没有归属关系的getter?

我如何能够实时查看在Postgres上执行的查询?

我在Node, Bookshelf和Knex上构build了一个应用程序,出于学习和性能方面的考虑,我希望看到在Postgres上正在执行哪些查询。 我该怎么做? 如果这意味着查询将存储在日志文件中,我并不是特别感兴趣的分析器。 我只想看看现在正在发生的事情。 可能的解决scheme: 像SQL Server分析器这样的应用程序,只要它显示实时查询即可 使书架或Knex将查询输出到控制台的一种方法 不幸的是,我search谷歌无济于事。