NodeJS 如何在server.js文件中以`ES6`方式导入`users` schema sequelize modal

wgx48brx  于 2023-03-22  发布在  Node.js
关注(0)|答案(2)|浏览(92)

如何以ES6的方式在server.js文件中导入users模式模式。即使我在package.json文件中添加了type: module,它也不起作用,抛出下面的错误。
注意:我正在尝试以ES6的方式导入所有其他模块。
续集user.js

'use strict';
module.exports = (sequelize, DataTypes) => {
    const users = sequelize.define('users', {
        id: {
            type: DataTypes.INTEGER(10),
            allowNull: false,
            primaryKey: true,
            autoIncrement: true
        },
        email: {
            type: DataTypes.STRING(100),
            allowNull: false
        },
        password: {
            type: DataTypes.STRING(100),
            allowNull: false
        }
    }, {
        timestamps: true,
        tableName: 'users'
    });

    return users;
};

server.js

import usersSchema from "./modals/users.js";

在控制台中抛出以下错误:
节点:40244)

Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
C:\Project\study\matblogs\src\server.js:23
vltsax25

vltsax251#

尝试使用

export default = (sequelize, DataTypes) => {
  ...

参考这篇ES6 101文章,它将帮助你调整你的代码:ES6 In Depth: Modules
如果你想让你自己的ES6模块有一个默认的导出,这很容易做到。它就像任何其他导出一样,除了它被命名为“default”。您可以使用我们已经讨论过的重命名语法:

```js
let myObject = {
  field1: value1,
  field2: value2
};
export {myObject as default};

或者更好的办法是,使用下面的简写:

export default {
field1: value1,
field2: value2
};

uqjltbpv

uqjltbpv2#

错误消息表明server.js文件未被识别为ES模块。要修复此问题,需要添加“type”:在package.json文件中添加“module”。

相关问题