Как правильно добавить и использовать Возражение. js - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь добавить Возражение. js в мой проект ( с использованием ES6 "type": "module") и получаю эту ошибку, которая указывает на ./models/user.js:

import { Model } from "objection";
         ^^^^^
SyntaxError: The requested module 'objection' does not provide an export named 'Model'

Используя следующий код:

. / Методов. js

import User from "./models/user.js";

async function getInfo(idnum) {
  const someUser = await User.query().findById(idnum);
  return someUser;
}

. / Модели / пользователь . js

import db from "../connection.js";
import { Model } from "objection";

Model.knex(db);

class User extends Model {
  static get tableName() {
    return "users";
  }
}

export default User;

. / Соединение. js

const environment = process.env.NODE_ENV || "development";

import knexfile from "../knexfile.js";
const connection = knexfile[environment];

import knex from "knex";
const db = knex(connection);

export default db;

ОБНОВЛЕНИЕ Создатель возражения . js сказал, что import { Model } from "objection" должно работать.

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Я надеюсь, что вы используете расширение .m js для файла, если вы используете импорт в приложении узла.

, но если вы используете. js в качестве расширения, вам нужно вызвать этот модуль требует require.

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

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

0 голосов
/ 28 апреля 2020

Единственный текущий обходной путь, по-видимому, импортирует Model следующим образом:

import objection from "objection";
const { Model } = objection;

с момента возражения. js выполняет экспорт следующим образом:

export default { Model }

, а не как это:

export { Model }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...