Objection.js - построитель запросов, а не функция, использующая метод вставки

1

Я новичок в nodejs Development, и в настоящее время я занимаюсь работой CRUD на моем postgresql. Я использовал Objection.js для создания ORM и Model. Я следую некоторым кодам из документов и редактирую необходимые строки, но на самом деле я не добился успеха, вместо этого он возвращает эту ошибку:

builder.knex(...). queryBuilder не является функцией

Я следую за шаблоном MVC, поэтому я разделяю файлы в соответствии с ним.

Мой контроллер:

'use strict';
const Todo = require('./../models/Todo');

class TodoController {
  createTodo() {
    Todo
      .query()
      .insert({
        'title': 'asdasdasda',
        'description': 'sdasdasdasdasdsad',
        'date': '2017-12-12',
        'isActive': true,
      })
      .then(name => {
        console.log(name.description);
      })
      .catch(err => {
        console.log(err);
      });
  }
}

module.exports = TodoController;

Схема Knex:

 knex.schema.createTableIfNotExists('todo', (table) => {
      table.increments();
      table.string('title', 255).notNullable();
      table.text('description').notNullable();
      table.boolean('isActive').defaultTo('false');
      table.datetime('date').notNullable();
      table.timestamp('createdAt').defaultTo(knex.fn.now());
    })

Модель:

'use strict';

const { Model } = require('objection');

class Todo extends Model {
  static get tableName() {
    return 'Todo';
  }
}

module.exports = Todo;

server.js:

    ...
    const KnexConfig = require('./knexfile');
    const { Model } = require('objection');
    ...
    ...
    Model.knex(KnexConfig.development);

Надеюсь, кто-то может вести меня, я все еще новичок на узлах

Теги:
objection.js

1 ответ

1

Похоже, вы пытаетесь передать объект конфигурации knex в Model.knex() тогда как вам нужно передать фактический экземпляр knex.

На server.js:

const { Model } = require('objection');
const knex = require('knex');

const KnexConfig = require('./knexfile');

Model.knex(knex(KnexConfig.development);

Это сообщение об ошибке появляется каждый раз, когда экземпляр knex, переданный объекту Objection.js, не является тем, что должно быть.

  • 0
    Вопрос здесь был не совсем то, что я делал, но это указало мне в правильном направлении. Действительно, кажется, что «____ не является функцией» - это сообщение об ошибке, которое появляется, когда конфигурация knex отсутствует или не соответствует требованиям.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню