Tag: knex.js

不能在postgres插入中插入问号

我试图运行一个简单的Postgres SQL插入: insert into "Resources" values(1, 'How are you?'); 但插入后的结果是: ID Data — —— 1 How are you$1 我知道,为了插入像单引号这样的字符,我必须用另一个单引号来逃避它,比如:我不能这样做。 但是如何处理呢?

knex.js + pg指定varchar> 255

当在knex迁移中创build一个表时,我已经指出了col: table.string("content"); 它默认为varchar255.我希望能够保存更多的文本。 我如何向knex表明我希望发生这种情况?

总和计算在几天和小时

我正在尝试使用Knex在多个小时内按小时对logging进行分组。 所以,例如,9AM将是: { hour: 9AM, // for days 12/11, 12/12, 12/13 count: 10 // 10 Ids total over those days for hour 9AM } 鉴于此快照中的logging,如何在多天内将它们汇总到小桶中? 如果输出查询结果,则可以在12/12和12/13 19:00看到两个单独的结果。 这两天的计数需要总结为一个hour 19:00分组: ROWS [ anonymous { session_ids: [ 3200 ], hour: 2016-12-12T14:00:00.000Z, count: '1' }, anonymous { session_ids: [ 3201 ], hour: 2016-12-12T15:00:00.000Z, count: '1' }, anonymous { […]

Promise Chain Breaks w / .all()

我是相当新的承诺,并认为我处理了事情,但显然我没有。 下面的代码是为了获取X个表名(getTableName()),将它们传递给getData()并遍历每个表来获取数据。 然后,我调用Promise.all()来解决这些问题,并尝试将数据传递给链中的下一个链接(createFile()),但Promise.all()在移至createFile()后parsing。 这是“反模式”回来咬我的例子吗? 如果是这样的话,你们有没有人可以build议我应该如何重组,以便我能够完成我所要做的事情? 谢谢! exports.getRawDataForExport = function(data) { return new Promise(function(resolve, reject) { var getTableName = function() { return knex('monitored_parameter') .where('device_id', data.device_id) .whereIn('internal_name', data.param) .select() .then(function(rows) { if(rows) { var runningResult = {}; for(var i = 0; i < rows.length; i++) { var tbl = {"table" : 'monitored_parameter_data_' + rows[i].id, "param" : rows[i].display_name}; […]

如何在Knex JS中使用IS NOT NULL

我正在尝试使用knex创build以下查询: SELECT * FROM users group by users.location having users.photo is not null 如下: knex("users").groupBy("users.location").having("users.photo", "IS NOT", "Null") 我收到以下错误: The operator IS NOT is not permitted 我已经通过他们的文档,找不到任何有用的东西。

用knex.js查询多个表

我想使用Expres.js和knex.js两个表格来渲染,只使用一个get函数,以便在一个HTML模板中使用两个表格中的数据。 当我查询只有一个表(学校或学生),但我不知道如何处理两个表。 任何build议? app.get('/schools', function(req, res) { knex.select() .from('schools', 'students') .then(function(schools, students) { res.render('schools', { schools: schools, students: students }); }).catch(function(error) { console.log(error); }); });

Knex.js:创build表并插入数据

鉴于我有这样一个Knex.js脚本: exports.up = function(knex, Promise) { return knex.schema.createTable('persons', function(table) { table.increments('id').primary(); table.string('name').notNullable(); }); }; 当前创build一个表。 如何将后续插入语句添加到此脚本? 我想要做的是添加一个这样的行(或类似): knex.insert({id: 1, name: 'Test'}).into('persons') 我不确定我是否理解这种基于承诺的方法是如何工作的。 我应该写插入语句的另一个脚本? 或者我可以以某种方式追加到我现有的脚本? 不幸的是,我没有在Knex.js文档中find任何完整的create + insert的例子。

如何在knex中运行同步查询

如何在节点中的knex db中以同步方式导致结果。 http://knexjs.org/#Promises-then knex.select('*').from('users').where({name: 'Tim'}) .then(function(id) { console.log('Inserted Account ' + id); }) 我想要这样的东西 knex.select('*').from('users').where({name: 'Tim'}) .sync().then(function(id) { console.log('Inserted Account ' + id); }); // code should not continue to run until completing then function 要么 如何使asynchronous库运行多个并行任务并返回同步代码中的结果。 像下面或类似的东西 var results=async.sync().parallel([ task1,task2 ],function(err, res){ results=res; }); // anything like var results or sync() console.log(results);

如何连接,创build数据库,重新连接数据库,并在knex.js中创build表?

我正在使用knex.js. 我有一个奇怪的设置继续下去。 我不能确定我连接到的MySQL数据库已经build立了我的数据库。 所以,首先我没有指定数据库连接。 然后,我创build一个数据库,并重新连接到指定的数据库。 之后,我想创build三个不同的表格。 但是我不断收到Error: ER_BAD_DB_ERROR: Unknown database '<dbname>' 。 我有这个代码, knex.raw('CREATE DATABASE IF NOT EXISTS ' + database + ';' ).then(function() { knex.destroy(); knexConnect.connection.database = database; knex = require('knex')(knexConnect); }).then(function() { knex.schema.createTable('items', initializeItems ).catch(function (err) { console.log(err); }); knex.schema.createTable('lessons', initializeLessons ).catch(function (err) { console.log(err); }); knex.schema.createTable('reviews', initializeReview ).catch(function (err) { console.log(err); }); […]

Knex.js在本地插入工程,但不在Heroku部署上

在我的快速应用程序中,当用户通过发布请求发送数据时,我想创build一个新logging。 当我在本地运行它时,它有效,但它在部署的站点中不起作用。 我正在使用knex.js. 以下是处理发布请求的路由: router.post('/', function(req, res) { newBook = { title: req.body.title, genre: req.body.genre, description: req.body.description, cover_url: req.body.cover_url } Books().insert(newBook, 'id').then(function(result) { res.send('Created new book with id ' + result) }) }) 这就是部署的网站上的错误日志中的内容: Unhandled rejection error: insert into "books" ("cover_url", "description", "genre", "title") values ($1, $2, $3, $4) returning "id" – duplicate key value […]