Articles of knex.js

Node.js knex – 确保用于login到数据库的密码

我在一个名为knexfile.js的文件中有下面的代码 module.exports = { development: { client: 'mysql', connection: { database: 'myDatabase', timezone: 'Z', user: 'root', password: 'myPassword', host: '127.0.0.1' }, pool: { min: 2, max: 10 }, migrations: { tableName: 'myMigrationTable' } } }; 上面的代码myPassword是纯文本的。 在我的生产服务器上,我绝对不希望我的密码在我的应用程序用来validation我的数据库的代码中。 我也不希望它在我的服务器上以明文forms存放在文件中。 在knex或node中有没有方法可以轻松地安全地login到我的数据库? 我应该只是简单地encryption我的密码,将其保留在我的服务器上的文件,并使用我的webapplogin时解密它?

从knex.js中的现有查询中select

我build立一个查询使用knex.js ,给定一个现有的子查询。 在这个答案和这个线程在GitHub中,我尝试了以下内容: const knex = require("knex")({client: 'pg'}); const subQuery = knex.queryBuilder().select(1); const query = knex.queryBuilder().select('*').from(subQuery); console.log(query.toString()); 但结果是: select * from select 1 这显然有一个语法错误。 我的预期结果是: select * from (select 1) 为什么不添加括号,我该如何改变它?

未处理的承诺拒绝 – 错误:发送后无法设置标头

我是新来的节点,我有一个简单的情况,我张贴到节点/快递应用程序的端点。 问题是我得到: POST /api/v2/user 500 25.378 ms – 54 (node:19024) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Can't set headers after they are sent. (node:19024) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 我所拥有的相关代码是: router.post('/', (req, res, […]

重复的键值违反了唯一的约束 – 使用KnexJS和Postgresql

我目前正在使用KnexJS框架构build一个应用程序,该框架可以帮助我在开发中编写sqlite3,在生产中编写postgresql(用于Heroku)。 我的主要问题是,我的应用程序在我的机器上正常工作,但只要我上传到heroku它打破。 在Heroku日志中,我收到消息: { error: insert into "contracts" ("contract_desc", "contract_header", "owner_id", "signee_id") values ($1, $2, $3, $4) – duplicate key value violates unique constraint "contracts_pkey" 这使我无法将数据插入到我的数据库中。 我的Knex迁移表的设置是这样的: exports.up = function(knex, Promise) { return knex.schema.createTable('contracts', function (table) { table.increments('id').primary() table.integer('owner_id') table.integer('signee_id') table.string('contract_header') table.text('contract_desc') table.string('signature_url') table.string('date_signed') table.boolean('isSigned') }) }; exports.down = function(knex, Promise) { return knex.schema.dropTable('contracts') }; […]

用Objection.js中的多对多插入

我有以下怀疑,我无法在objection.js文档中find清楚的答案。 我有以下2个模型: export class Language extends BaseId { name: string; static tableName = 'Languages'; static jsonSchema = { type: 'object', required: ['name'], properties: { name: { type: 'string', minLength: 1, maxLength: 80 } } }; } export class Country extends BaseId { name: string; languages: Language[]; static tableName = 'Countries'; static jsonSchema = { type: […]

Bad handshake或ECONNRESET Azure Mysql Nodejs

已经有类似的报道,但是我不能解决这个问题。 我有一个express.js应用程序使用KNEX连接到Azure托pipe的MySQL数据库。 我可以完全从控制台命令或MySQL工作台连接到数据库。 但是,没有办法从我的节点应用程序实现相同。 我的连接对象是相同的: config.knex = require('knex')({ client: 'mysql', connection: { host: 'wineserver.mysql.database.azure.com', user: 'BurgerAndGreenBeans@wineserver', password: 'FromageDeChevre', database: 'gdpr', insecureAuth: true }, pool: { min: 0 }, debug: ['ComQueryPacket'] }); 每次我启动应用程序,我得到一个错误或另一个: #1 Unhandled rejection Error: read ECONNRESET at exports._errnoException (util.js:1050:11) at TCP.onread (net.js:582:26) ——————– at Protocol._enqueue (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:141:48) at Protocol.handshake (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:52:41) at Connection.connect (C:\Projects\gdpr\node_modules\mysql\lib\Connection.js:130:18) at […]

在knex中迁移表:存储媒体,图像或blob

我正在尝试将关系迁移到我的postgres数据库。 问题是我不知道图像使用什么值types。 exports.up = function (knex, Promise) => { return knex.schema.createTable('observations', (table) => { table.increments(); table.integer('user_id').notNullable(); table.blob('image').notNullable(); //??? table.string('category').notNullable(); table.string('description').notNullable(); table.boolean('approved').notNullable().defaultTo(false); table.float('latitude').notNullable(); table.float('longitude').notNullable(); table.timestamp('created_at').defaultTo(knex.fn.now()); }); }; 我以为会有一个“blob”文件types,但在文档中似乎没有迁移任何媒体的迹象。 请帮帮我。

如何使用Knex查找或创build?

就简单的用户注册而言,我怎样才能在用户名中查找或创build最佳性能? 猜测我需要使用原始查询,但我还没有如此精明的SQL。 或者,如果用户名已经存在,至less应该拒绝。

如何使用knex.js链接查询?

我在理解Knex.js中承诺的工作方面遇到了一些麻烦(使用Bluebird.js作为承诺)。 我试图做一些非常简单的事情,依次执行不同的插入语句,但是我一直无法使它工作。 这里是我到目前为止的代码,这是为了在authentication_type表上执行一个insert,然后在user_table上插入一个insert,然后在category表上插入一个insert。 // Import database connection var knex = require('./db-connection.js'); // Add a row to authentication_type table so that user's can be created function add_authentication_type() { return knex('authentication_type') .insert({id: 1, name: 'Internal'}) } // Add a 'default' user with nil uuid // Anything added without a user must link back to this user function […]

我怎样才能批量删除使用knexjs(MySQL)。 我有一个匹配单个字段的数组中的条目

让我有这样的数据库结构。 sr no. name age 1. hemant 25 2. amit 23 3. vikash 24 我有如下的数组: arr=['hemant','amit'];