Javascript SyntaxError:请求的模块未提供名为';连接';

Javascript SyntaxError:请求的模块未提供名为';连接';,javascript,node.js,Javascript,Node.js,当我使用requirecommonjs时,一切都正常 const { Schema, connect } = require("mongoose"); connect("mongodb://localhost:27017/usersdb", { useNewUrlParser: true }); 但是当我使用importes6时,我得到了一个错误 import { connect } from "mongoose"; connect( "mongodb://localhost:27

当我使用requirecommonjs时,一切都正常

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

connect("mongodb://localhost:27017/usersdb", {
  useNewUrlParser: true
});
但是当我使用importes6时,我得到了一个错误

import { connect } from "mongoose";

connect(
  "mongodb://localhost:27017/usersdb",
  {
    useNewUrlParser: true
  }
);
语法错误:请求的模块>'file:///C:/Users/Rich%20Warrior/Desktop/mon0022/node_modules/mongoose/index>.js'不提供 名为“connect”的导出

如果你这样写

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模块。有没有一种方法可以将es6模块与mongoose一起使用而不出错?

NodeJS还不支持它。你必须使用类似的东西。也可以从中查看此信息。

看这里:这是否回答了您的问题?您是否尝试过从“猫鼬”导入猫鼬?错误很明显,没有命名的导出
connect
。因此,
import*从“mongoose”导入为mongoose也没有帮助,因为它只导入命名的导出。@FelixKling为什么这里是
import mongoose,{connect}来自“mongoose”不起作用我不确定我是否理解这个问题<代码>导入猫鼬,{connect}来自“猫鼬”无法工作,因为您再次尝试导入名为
connect
的导出,该导出不存在。如我所说,尝试从“猫鼬”导入猫鼬
然后使用
mongoose.connect访问它。如果这是问题所在,则OP将得到不同的错误。错误“未提供名为“connect”的导出”表明ES6模块语法工作正常。