【发布时间】:2021-08-29 05:57:15
【问题描述】:
我正在使用 Node 16.3.0 和 Express 4.17.1(尽管我的 Node 版本很灵活)
我有一个像这样的session.js 文件:
// session.js
exports.fetchUserId = async function(token){
...
}
exports.save = async function(userId){
...
}
然后在我的app.js 文件中,我尝试这样做:
// app.js
import session from './session.js'
我收到以下错误:
import session from './session.js'
^^^^^^^
SyntaxError: The requested module './session.js' does not provide an export named 'default'
...然后我想像这样在app.js 中使用session:
let userId = await session.fetchUserId(req.body.token)
我尝试了以下方法,但没有任何运气:
- 将
"type": "module"添加到package.json -
This answer 通过做
npm i esm - 使用
nodemon --experimental-modules app.js
我的代码在 NuxtJS 项目中使用时可以正常工作,但我正在尝试一个普通的 Node/Express 应用程序并且命名的导出不起作用。
知道我做错了什么吗?
【问题讨论】:
-
你能分享你的
package.json文件吗?具体来说,你在那个文件中有"type": "module"吗? -
是的,参见上面的
#1。我在里面有"type": "module"。 -
不幸的是 node 默认不支持 es6 模块导入,因此您必须使用以下解决方案之一:google.com/amp/s/www.geeksforgeeks.org/… - 替代方案是使用 commonJS 导入
标签: javascript node.js express es6-modules