Tag: knex.js

多行插入使用Knex.js

我试图用Knex.js构build一个多行插入查询 我的post请求包含一个格式为以下格式的variables: [{addon_name:'sugar'},{addon_name:'milk'}] 我的数据库表只有一列,即addon_name 我的节点应用程序中的knex查询如下 knex(`<table_name>`).insert(req.body.`<param_name>`)) 预期的操作 insert into `<tablename>`(`addon_name`) values (sugar), (milk); 但代码dosn't工作。 任何意见 ? 错误详情 { [Error: insert into `table_name` (`0`, `1`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `2`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `3`, `30`, `31`, `32`, `33`, `34`, `35`, `36`, `37`, `38`, […]

Supertest + Knex.js =当前客户端没有定义池

我使用超级(在摩卡内)来testing我的应用程序,这是目前使用knex.js数据库的目的。 一切正常和knex的旧版本,(0.5.x)。 现在我想用最新的knex版本。 在大多数情况下,使用 request = supertest(app) 对我来说工作正常,但还有其他情况下我需要testing几个请求,而不重复使用Cookie,所以… request = supertest.agent(app) 这发生了什么? 它结束了主题中描述的错误。 我已经添加了一些自定义日志“acquireConnection”,“releaseConnection”,“initializePool”和“destroy”函数到内核库,看看发生了什么,输出如下所示: Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Releasing connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool undefined [Error] …….. "There is no pool defined on the current client" 任何帮助,将不胜感激。 提前致谢。

node_modules打包失败(Webpack或Browserify)

我试图捆绑我的node.js应用程序与webpack或browserify,但我需要一些后端模块,如knex,书架等。 但是webpack和browserify无法打包这些模块,因为他们用require()做了一些奇怪的事情… 我得到了这样的错误: Cannot find module 'sqlite3'或Error: Cannot find module './dialects/postgres/index.js' 我不能忽略我的node_modules目录,因为我需要包中的模块,因为我无法访问我的包将被使用的环境。 (AWS Lambda) 我不需要webpack或browserify来优化我的node_modules,但我需要它们,有没有办法告诉webpack或browserify只捆绑node_module文件夹,并相信我,如果需求缺失? 编辑:我使用无服务器来testing和部署我的lambda和唯一的插件,让我用babel强制我使用ES2015使用webpack / browserify 谢谢 :)

如何在Node.js(express)上返回由{}而不是包围的json返回使用knex和postgresql的查询结果

如果我做一个curl请求到我的node.js(EXPRESS)API curl http://127.0.0.1:3000/api/events/user/id/1我得到这个结果: [{"id":"1","name":"casamiento 1","description":"el casamiento del tio claudio","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000805BC00000000000003E40"},{"id":"2","name":"casamiento 2","description":"el casamiento del tio claudio 2","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000405BC00000000000003D40"},{"id":"3","name":"fiesta del sandwich de miga","description":"Nos juntamos a comer sandwiches de miga hasta reventar","mode_id":1,"initial_date":"2016-05-28T22:15:58.000Z","end_date":"2016-05-28T22:15:58.000Z","state_id":1,"user_id":"1","location":"0101000020E610000000000000000000000000000000804840"}] 我需要输出被大括号包围,如: {{"id":"1","name":"casamiento 1","description":"el casamiento del tio claudio","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000805BC00000000000003E40"},{"id":"2","name":"casamiento 2","description":"el casamiento del tio claudio 2","mode_id":1,"initial_date":"2016-05-28T22:14:57.000Z","end_date":"2016-05-28T22:14:58.000Z","state_id":1,"user_id":"1","location":"0101000020E61000000000000000405BC00000000000003D40"},{"id":"3","name":"fiesta del sandwich de miga","description":"Nos juntamos a comer sandwiches de miga hasta reventar","mode_id":1,"initial_date":"2016-05-28T22:15:58.000Z","end_date":"2016-05-28T22:15:58.000Z","state_id":1,"user_id":"1","location":"0101000020E610000000000000000000000000000000804840"}} 我的模型“事件”文件是这样的查询,然后返回结果: var express […]

数组未被传递到knex中查询

我从一个get查询传递一个ID数组在哪里函数,但他们将失踪。 if(query.cols){ var cols = query.cols.map(Number); console.log(cols) search.whereIn('collection_id', cols) } 我将它们映射到整数的查询。 控制台日志是… [ 77, 66 ] 但debugging显示查询为… …and "collection_id" in (?, ?) 我错过了什么?

为什么knex迁移示例将Promise构造函数作为第二个parameter passing?

Knex使用迁移文件来应用或回滚数据库结构更改。 要创build一个新的迁移文件,例如,可以使用cli: knex migrate:make migration_name 这将在/migrations目录中生成一个文件,其中包含: exports.up = function(knex, Promise) { }; exports.down = function(knex, Promise) { }; 我的问题是,这是为什么将Promise作为一个论点? 我看到knex使得Bluebird内部使用量很大, 并将Promise传递给了迁移 。 那么,这就是前Promise无处不在的遗迹吗? 或者…有意识地覆盖es6实现,以便可以使用非标准方法(如tap和spread ? 任何清晰度将不胜感激。

Javascript – 将以前的查询结果传递到下一个.then()

我链接查询使用knex添加额外的数据到我的JSON返回对象。 然而,我似乎无法理解为什么我不能将一个knex.query的结果传递给第二个knex查询的.then()。 码: exports.getApps = function() { return new Promise(function(resolve, reject) { db.raw(` SELECT * FROM APPs WHERE VARAPP_PUBLIC_ACTIVE > 0 ORDER BY VARAPP_PUBLIC_ACTIVE ASC, VARAPP_NAME ASC `).then(function(results) { if (results[0].length > 0) { for (var i = 0; i < results[0].length; i++) { db.raw(` SELECT * FROM APPs_Features WHERE VARAPP_ID = ? ORDER BY […]

用knexjs创buildangular色

我是PostgreSQL和节点的新手。 我正在使用knex.js库。 我需要创buildangular色并将其分配给在PostgreSQL中创build的每个表。 我不知道我怎么能做到这一点。 是否在桌面迁移时完成? 或者我可以在迁移之后做到这一点? 如果是这样,我该怎么办呢?

select语句的子查询与Knex.js

我正在尝试使用Knex创build子查询的以下查询: SELECT t.*, (SELECT COUNT(*) FROM team_users tu WHERE TeamID = t.ID) AS UserCount, (SELECT COUNT(*) FROM team_access ta WHERE TeamID = t.ID) AS AppCount FROM teams t WHERE OwnerUserID = _UserID; 结果应该是来自不同表(team_users,team_access)的UserCount和AppCount的计数聚合的团队表, id | Name | OwnerUserID | UserCount | AppCount —————————————————– 134| Team A | 1538 | 7 | 6 135| Team B […]

使用knex.js在Node API混淆中编写插入语句

我有一个问题,我似乎无法将我的头围绕。 这是非常具体的Knex.JS实现,我敢肯定与PostgreSQL无关。 以下实现工作。 当插入适量(〜500报表)。 数额较大,由于其他原因而失败。 无论如何,以下对我的用例不起作用,我需要类似下一节的内容。 import knex = require("knex"); (function (items) { let db = knex.table("items"); db.truncate(); let foo = []; items.forEach(function(item) { foo.push({ id : item.id, item_data : JSON.stringify(item) }); }); db.insert(foo).then(function () { /*..*/ }); }(items)) 但是以下不是: import knex = require("knex"); (function (items) { let db = knex.table("items"); db.truncate(); let foo = […]