首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确添加和使用Objection.js

如何正确添加和使用Objection.js
EN

Stack Overflow用户
提问于 2020-04-27 12:21:28
回答 2查看 992关注 0票数 0

我试图将Objection.js添加到我的项目(使用ES6 "type": "module")中,并获取指向./models/user.js的错误

代码语言:javascript
复制
import { Model } from "objection";
         ^^^^^
SyntaxError: The requested module 'objection' does not provide an export named 'Model'

使用以下代码:

./methods.js

代码语言:javascript
复制
import User from "./models/user.js";

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

./models/user.js

代码语言:javascript
复制
import db from "../connection.js";
import { Model } from "objection";

Model.knex(db);

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

export default User;

./connection.js

代码语言:javascript
复制
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;

UPDATE Objection.js的创建者说 import { Model } from "objection"应该可以工作。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-28 01:13:56

当前唯一的解决方法似乎是像这样导入Model

代码语言:javascript
复制
import objection from "objection";
const { Model } = objection;

由于Objection.js确实像这样进行出口:

代码语言:javascript
复制
export default { Model }

不是这样的:

代码语言:javascript
复制
export { Model }
票数 1
EN

Stack Overflow用户

发布于 2020-04-27 17:39:19

如果在Node应用程序中使用.mjs,我希望您使用的是文件的import扩展名。

但是,如果使用.js作为扩展,则必须使用require调用该模块。

代码语言:javascript
复制
const { Model } = require('objection');

这就是我曾经遇到的问题..。我不知道这是否能解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61458806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档