【问题标题】:SyntaxError: The requested module does not provide an export named 'connect'SyntaxError:请求的模块不提供名为“连接”的导出
【发布时间】:2020-03-05 01:48:25
【问题描述】:

当我使用 require commonjs 时,一切正常

const { Schema, connect } = require("mongoose");

connect("mongodb://localhost:27017/usersdb", {
  useNewUrlParser: true
});

但是当我使用 import es6 时出现错误

import { connect } from "mongoose";

connect(
  "mongodb://localhost:27017/usersdb",
  {
    useNewUrlParser: true
  }
);

SyntaxError: The requested module >'file:///C:/Users/Rich%20Warrior/Desktop/mon0022/node_modules/mongoose/index>.js' 不提供 名为“连接”的导出

如果你这样写

import * as mongoose from "mongoose";

mongoose.connect("mongodb://localhost:27017/usersdb", {
  useNewUrlParser: true
});

TypeError: mongoose.connect 不是函数

package.json

{
  "name": "dur",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "nodemon -r esm src/index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "esm": "^3.2.25",
    "express": "^4.17.1",
    "i": "^0.3.6",
    "mongoose": "^5.7.8",
    "nodemon": "^1.19.4"
  }
}

我想使用 es6 模块。有没有办法在 mongoose 中使用 es6 模块而不会出错?

【问题讨论】:

  • 这能回答你的问题吗? How can I use an es6 import in node?
  • 你试过import mongoose from "mongoose"; 吗?错误似乎很明显,没有 named 导出connect。所以import * as mongoose from "mongoose"; 也无济于事,因为它只导入命名的导出。
  • @FelixKling 为什么这里是import mongoose, {connect} from" mongoose "; 不起作用
  • 我不确定我是否理解这个问题。 import mongoose, {connect} from" mongoose "; 不起作用,因为您再次尝试导入不存在的名为 connect 的导出。正如我所说,尝试import mongoose from "mongoose";,然后使用mongoose.connect 访问它。

标签: javascript node.js


【解决方案1】:

NodeJS 还不支持它。您将不得不使用类似bable 的东西。也可以从NodeJS doc 中查看。

【讨论】:

  • 如果这是问题所在,那么 OP 会收到不同的错误。错误“不提供名为 'connect' 的导出”清楚地表明 ES6 模块 syntax 工作正常。
猜你喜欢
  • 1970-01-01
  • 2022-10-17
  • 2021-12-11
  • 2021-10-03
  • 2021-11-07
  • 2019-10-06
  • 2019-08-31
  • 2020-12-24
  • 2020-04-29
相关资源
最近更新 更多