Tag: postgresql

NodeJS Bookshelf用户 – 关注者关系示例

我试图创build一个用户,追随者关系与书架,但我不能实现它:( 你能用一个简单的样本来模仿我吗? 谢谢你的时间 :) SQL: DROP TABLE IF EXISTS usersfollows; DROP TABLE IF EXISTS users; CREATE TABLE users ( "id" serial NOT NULL , "username" varchar(40) NOT NULL , "email" varchar(255) NOT NULL , "pass" varchar(255) PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "users_username" ON users (username); CREATE UNIQUE INDEX "users_email" ON users (email); CREATE […]

节省许多许多

我徘徊,如果有任何扩展教程如何保存多对多的关系? 我发现文档比基本更多。 它缺less许多使用案例的例子。 我有两种模式:客户端和规则。 他们有n:n的关系。 客户: var Client = sequelize.define('client', { title: { type: DataTypes.STRING(200), allowNull: false }, company: { type: DataTypes.STRING(200), allowNull: false }, vendor: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false }, consumer: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true }, address_id: { type: DataTypes.INTEGER, allowNull: true } },{ paranoid: true, underscored: true, […]

无法使用Sequelizer for NodeJS为连接表添加where子句

我正在执行以下的地方。 引起我的问​​题的关键逻辑是在#7行,我试图指定一个连接表上的where条件。 models.Portfolio.findAll({ include: [{ model: models.PortfolioPermissions, }], where: models.sequelize.or( {'userId': userId}, {'PortfolioPermissions.userId': userId} ), order: [['startDate', 'DESC']] }) 您可以看到下面的结果查询在第9行有一个主要问题。 Sequelize正在将我的where子句与投资组合表混为一谈。 SELECT `portfolios`.*, `sharedUsers`.`id` AS `sharedUsers.id`, `sharedUsers`.`permissions` AS `sharedUsers.permissions`, `sharedUsers`.`userId` AS `sharedUsers.userId`, `sharedUsers`.`portfolioId` AS `sharedUsers.portfolioId` FROM `portfolios` LEFT OUTER JOIN `portfolioPermissions` AS `sharedUsers` ON `portfolios`.`id` = `sharedUsers`.`portfolioId` WHERE (`portfolios`.`userId`=1 OR `portfolios`.`PortfolioPermissions.userId`=1) ORDER BY `startDate` DESC; […]

asynchronous查询到nodeJS中的数据库

我试图parsing与数据文件,并将其插入数据库中,parsing顺利,当我做一个查询它运行很好,但是当我试图让这个查询工作在循环中它给我 values: [output[i][0], output[i][1], output[i][2], output[i][3], o ^ TypeError: Cannot read property '0' of undefined 首先,我试图简单的循环,但经过一些关于nodeJSasynchronous的研究,我发现我需要在callback中做到这一点,但它没有奏效,我认为parsing不是通过启动查询例程的时刻完成的,米不确定。 var express = require('express'); var pg = require('pg'); var csv = require('fast-csv'); var app = express(); var conString = "postgres://alexzander:,tjdekma@localhost/db2015"; var output = []; var client = new pg.Client(conString); parser = csv.fromPath("public/dataInputOld/tblOwner.txt", {delimiter: ';'}); parser.on("data", function (data) { output.push(data); […]

为什么我的pg-query结果抛出一个TypeError

我正在创build一个节点函数来在PostgreSQL数据库中创build一个用户。 我使用node.js , pg和pg-query从应用程序到数据库进行通信。 在插入新logging之前我试图validation电子邮件地址不存在。 我不知道为什么我的result.rows[0].id是TypeError: Cannot read property '0' of undefined error基于文档我使用正确的语法来访问我的查询结果。 这是function: /* POST create user */ router.post('/adduser', function(req, res) { var salt = crypto.randomBytes(16); var newHash = hash(req.body.password, salt); query.connectionParameters = connString; query('SELECT id FROM users WHERE email = $1',[req.body.email], function(err, result) { if (err){ console.log('Insert error: ' + err); } // […]

Node.js将二进制文件转换为utf8

我有一个二进制格式(bytea)存储在postgresql数据库中的jrmxl(Jasper报告)文件。 我试图读取该文件,并将其转换为普通的jrmxl(XML)文件并将其保存在磁盘上。 这是我迄今为止所尝试的 var fs = require('fs'); exports.saveFile = function (pg) { //pg is the postgres connection to query the db pg.query('Select data from data_file where id = 123', function (err, result) { if (err) { console.log(err); return; } var data = result.rows[0].data; //Buffer.isBuffer(data) === true // I can get the data here. Now I […]

有什么方法来覆盖特定types的默认格式和validation?

我有一个types为“date”的“生日”字段的模型用户。 问题在于水线将其值转换成限制在1970年以下的JavaScript Date对象。显然有一些出生年份less于1970年的人。 那么是否有一些方法可以完全重写为特定字段进行格式化和validation的函数? 也许我可以做到这一点,而不会破坏任何适配器的兼容性?

在Sequelize中创build关联进行左连接

我想使用Sequelize做一个左连接,它和这个SQL代码一样。 SELECT * FROM events LEFT JOIN zones ON event_tz=zid WHERE event_creator_fk=116; 我有两个表: events和zones (与时区列表)。 当查询特定用户创build的所有事件时,我也想获取TZ的时区​​名称和其他详细信息。 我已经尝试了许多解决scheme的组合,通过查看示例代码,其他堆栈溢出问题和尽可能最好的文档。 查询总是有效的,但不做任何连接。 也就是说,它下面的代码总是返回事件列表,但没有来自zones表的时区数据。 生成的SQL是正确的,除了它没有…LEFT JOIN zones ON event_tz=zid…部分。 下面的代码是错误的。 详情请参阅答案。 db.Event.findAll( { where: { event_creator_fk: someUserID } }, { include: [{ model: db.Zone } ]} ); 如果我理解正确,在表中添加关联在sequelize结果在自动创build一个额外的列。 这不是我想要做的。 我不希望Sequelize以任何方式修改表或数据库。 我想设置我的数据库,它没有Sequelize的表。 因此,我不调用sequelize.sync() 。 我不知道是否有按照我想要的方式build立关联。 模型定义 module.exports = function (sequelize, DataTypes) […]

仅当active = true时,才会将ORM包含模型

我怎样才能findid:1的所有订单,只有当这个项目有active = true时才包括项目? 否则会有空arrays… Order.findAll({ where: { id: 1 }, include: [ { model: Item, where: sequelize.and({'active' : true }) } ] }).then(function(order) { callback(null, order); }); 这显示我只有订单在哪里有一些项目与积极=真。 我想显示所有订单与ID:1和项目作为子数组…

使用sails.js和postgreSQL时出错(使用sails-postgresql模块)

我想问个问题。 我正在开发一个应用程序使用sails.js和PostgreSQL(使用sails-postgresql模块)。 我使用的是我的主键types而不是整数的UUID。 但是当我尝试向我的数据库插入数据时有一些错误。 我的模型UserModel.js var uuid = require('node-uuid'); module.exports = { adapter: 'somePostgresqlServer', autoPK: false, migrate: 'safe', attributes: { ID: { primaryKey: true, type: 'string', defaultsTo: function (){ return uuid.v4(); }, unique: true, index: true, uuidv4: true }, username: { type: 'string', required: true, unique: true } } }; 我在控制器中创buildfunction create: function(req, res) { […]