Node.js 获取错误生成器.knex(…).queryBuilder不是一个函数
使用Node.js 获取错误生成器.knex(…).queryBuilder不是一个函数,node.js,jestjs,sails.js,knex.js,objection.js,Node.js,Jestjs,Sails.js,Knex.js,Objection.js,使用sails lift运行应用程序时,一切正常,正如预期的那样,但当我在Jest测试套件中运行此应用程序时,它停止工作 在另一个例子中提到,这意味着Knex配置没有正确地给出异议,但是Knex使用Jest和正在运行的生产代码之间没有差异 BeforeAll()函数 错误 TypeError: builder.knex(...).queryBuilder is not a function at buildKnexQuery (C:\Users\Binny Zupnick\Develop
sails lift
运行应用程序时,一切正常,正如预期的那样,但当我在Jest测试套件中运行此应用程序时,它停止工作
在另一个例子中提到,这意味着Knex配置没有正确地给出异议,但是Knex使用Jest和正在运行的生产代码之间没有差异
BeforeAll()函数
错误
TypeError: builder.knex(...).queryBuilder is not a function
at buildKnexQuery (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\objection\lib\queryBuilder\QueryBuilder.js:1359:63)
at doExecute (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\objection\lib\queryBuilder\QueryBuilder.js:1250:31)
at Bluebird.try.then (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\objection\lib\queryBuilder\QueryBuilder.js:563:19)
at tryCatcher (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\promise.js:694:18)
at _drainQueueStep (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\async.js:138:12)
at _drainQueue (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\async.js:131:9)
at Async.Object.<anonymous>.Async._drainQueues (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\async.js:147:5)
at Immediate.Async.drainQueues (C:\Users\Binny Zupnick\Development\onefiftyone\node_modules\bluebird\js\release\async.js:17:14)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)
Knexfile
// Update with your config settings.
function getSsl() {
return process.env.PG_SSL !== "false";
}
function connectionStringToObject(connectionString) {
let connectionObject = {};
let noPostgres = connectionString.split('//')[1];
let splitByColon = noPostgres.split(':');
let splitByStrudel = splitByColon[1].split('@');
let splitBySlash = splitByColon[2].split('/');
connectionObject['user'] = splitByColon[0];
connectionObject['host'] = splitByStrudel[1];
connectionObject['password'] = splitByStrudel[0];
connectionObject['database'] = splitBySlash[1];
connectionObject['ssl'] = getSsl();
return connectionObject;
}
let connectionString = process.env.DATABASE_URL;
let connectionObject = connectionStringToObject(connectionString);
let dbConnection = {
client : "pg",
connection: connectionObject,
migrations: {
directory: './db/migrations'
},
useNullAsDefault: true
};
module.exports = {
connection: dbConnection
};
你设法解决了这个问题吗?我现在也遇到了这个错误,我的文件内容看起来很相似。谢谢你解决了这个问题吗?我现在也遇到了这个错误,我的文件内容看起来很相似。谢谢
let Knex = require('knex');
const knexfile = require('../../knexfile');
const { Model } = require('objection');
// Give the knex object to objection.
const knexConfig = Knex(knexfile['connection']);
Model.knex(knexConfig);
class User extends Model {
static get tableName() {
return 'user';
}
}
module.exports = {
User: User
};
// Update with your config settings.
function getSsl() {
return process.env.PG_SSL !== "false";
}
function connectionStringToObject(connectionString) {
let connectionObject = {};
let noPostgres = connectionString.split('//')[1];
let splitByColon = noPostgres.split(':');
let splitByStrudel = splitByColon[1].split('@');
let splitBySlash = splitByColon[2].split('/');
connectionObject['user'] = splitByColon[0];
connectionObject['host'] = splitByStrudel[1];
connectionObject['password'] = splitByStrudel[0];
connectionObject['database'] = splitBySlash[1];
connectionObject['ssl'] = getSsl();
return connectionObject;
}
let connectionString = process.env.DATABASE_URL;
let connectionObject = connectionStringToObject(connectionString);
let dbConnection = {
client : "pg",
connection: connectionObject,
migrations: {
directory: './db/migrations'
},
useNullAsDefault: true
};
module.exports = {
connection: dbConnection
};