Tag: postgresql

knex postgres返回数字/十进制值的string

我有一个列的表 table.decimal('some_column', 30,15)在postgres上是numeric(30,15) 当我从节点运行knex.raw('select some_column from some_table')时,我得到的响应如下所示: some_column: "5.000000000000000" some_column: "10.000000000000000" 真正指出我的是,我做了一些像firstValue> lastValue我最终得到一个真正的响应,所以这让我觉得这些返回string,而不是数字。 任何方式来覆盖这种行为?

在pg-promise中查询超时

我想为pg-promise查询添加超时,所以如果数据库还没有响应,它们会在一段时间后失败。 有没有build议的方式来做到这一点,或者我应该做自定义包装将处理计时器和拒绝承诺如果为时已晚?

NodeJS – 在渲染之前将数据库查询的结果发送到视图或路由

我正在使用Express JS,Socket IO和Handlebars与NodeJS做一个web应用程序,但我对这些技术很新颖。 我努力find一种方法来将查询结果传递给我的菜单(部分),主要是因为节点是asynchronous的,所以当我的查询返回结果时,页面已经呈现,通过。 main.handlebars(主版面): (…) {{> menu}} (…) {{{body}}} router.js var express = require('express'); var router = express.Router(); var index_controller = require('../controllers/index_Controller'); router.get('/', index_controller.index); module.exports = router; index_controller.js exports.index = function(req, res) { res.render('main_page_html'); }; 这个菜单会出现在每个页面上,我想在这个菜单中显示来自在线人员的名字,这是查询的结果。 我试图把路由function中的查询代码,它的工作原理,但我将不得不复制相同的代码到我有每一个路由,因为如我所说,这个菜单出现在所有的。 如果我尝试在路由function之外执行某个function,则asynchronous会启动,并且没有数据发送到该页面。 这绝对是一个更好的解决scheme。 ps:通过套接字发送我的数据到客户端是一种方式,但我想做的事情是服务器端。 -解- 我按照Tolsee的说法创build了一个中间件,所以现在我可以在需要的每个path中调用这个中间件。 这就是我所做的: menu.js exports.onlineUsers = function (req, res, next) { // database query […]

如何使用json插入非空列的表?

我试图用多个非空的默认列插入到food表中,命令如下: food_insertone('{"id": 1, "taste": "sweet"}'::JSON) food_insertone('{"id": 2}'::JSON) food_insertone('{"id": 3, "taste": null}'::JSON) 结果应该是这样的: INSERTED 1, 'sweet' INSERTED 2, '' ERROR (null not allowed in taste) 餐桌被定义为: CREATE TABLE "food" ( "id" INT, "taste" TEXT NOT NULL DEFAULT '', … ); CREATE OR REPLACE FUNCTION "food_insertone" (JSON) RETURNS VOID AS $$ INSERT INTO "food" SELECT * FROM […]

Angular 2,Nodejs和postgresql

所以我想在数据库的前端显示一些数据。 我的app.js文件包括: app.use('/database', databaseRoutes); 我的database.js文件是下一个。 const { Pool, Client } = require('pg') const connectionString = "postgres://dbuser:Storerage@localhost/mainstorage" const client = new Client({ connectionString: connectionString, }) client.connect() client.query('SELECT * FROM files limit 10', (err, res) => { console.log(err, res) client.on("row", function (row, result) { result.addRow(row); }); }); module.exports = client; 如何在document.component.html中显示这个postgresql查询结果。 有人可以联系我任何帮助,或写一个介绍? 我想我需要创build一个document.service文件,但我不知道如何处理。 我已经阅读了关于JSON.stringify,但没有find任何很酷的教程。 感谢帮助。

如何使用node-postgres插入多行?

这是我的陈述: INSERT INTO userpermissions (username, permission) VALUES ($1, $2),($3,$4) RETURNING *; 这是我的代码: db.query(stmt2,values2, (err2, result2) => { //Do other stuff depending on if there is an error or result } 其中stmt2是上面的语句,而values2是我创build的数组: var values2 = []; for(i=0;i<permissions.length;i++){ values2.push(username); values2.push(permissions[i]); } 有一些错误/致命的exception,但我不能看到它,因为错误的域被包装。

如何使用json-sql与postgresql?

我正在尝试使用json-sql npm模块postgres。 但我甚至无法做到select。 我认为,问题是从json-sql查询包含$ p1而不是$ 1。 我需要调整才能从json-sql获取类似于postgres的查询? 我试图使用{dialect:'postgresql'}configuration选项,但仍然有一个问题。 由于以下代码: let userCompSql = jsonSql.build({ type: 'select', fields: ['id'], table: 'user_computers', condition: { 'os_name' : params.osName, 'os_minor' : params.osVersionMinor }}) 我得到一个stringuserCompSql: “ select_id ”from“user_computers”其中“os_name”= $ p1和“os_minor”= 0;“ 但我希望有$ 1而不是$ p1为我的postgresql数据库。

使用Object更新准备的语句

我有一个Object ,将列名称映射到值。 预先不知道要更新的列,并在运行时决定。 例如map = {col1: "value1", col2: "value2"} 。 我想执行一个UPDATE查询,将这些列的表更新为相应的值。 我可以做以下吗? 如果没有,是否有一个优雅的方式,而不需要手动构build查询? db.none('UPDATE mytable SET $1 WHERE id = 99', map)

Sequelize:TypeError:User.hasMany不是一个函数

我有这个奇怪的行为。 我有一个用户模型和一个客户端模型。 用户有很多客户端。 我正在使用这个文档: http : //docs.sequelizejs.com/manual/tutorial/associations.html 当我运行服务器,Sequelize引发TypeError:User.hasMany不是一个函数 节点版本: 8.9.1 方言: postgres 数据库版本: Postgres 10 续集版本: 4.22.15 以下文件全部在同一个文件夹中 user.js模型 const Sequelize = require('sequelize'); const db = require('../index.js'); //This is an instance of new Sequelize(…) const tableName = 'users'; const User = db.define('user', { firstName: { type: Sequelize.STRING(50), allowNull: false, validate: { notEmpty: true } }, […]

postgressearch列不区分大小写

作为标题真的…即时运行 db.any('SELECT * from films WHERE title = $1', query.term).then(function(data) { res.status(200).json({status: 'success', data: data}); }).catch(function(err) { return next(err); }); 它的工作原理,但如果你search' C AR'它不会在数据库中find' C AR',你必须search' C AR'…我可以强制小写,然后转换回前端,但似乎打破了,如果标题是“汽车电影”更是如此。 任何帮助将是伟大的,在此先感谢