Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 获取错误生成器.knex(…).queryBuilder不是一个函数_Node.js_Jestjs_Sails.js_Knex.js_Objection.js - Fatal编程技术网

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
};