【发布时间】:2020-04-15 09:50:04
【问题描述】:
我正在尝试将变量从一个 js 文件导入到 node.js 环境中的另一个。以下是仅包含重要部分的文件 -
file1.js
var socket = io.connect();
export default socket;
file2.js
import socket from "./chat.js";
我的 file1.js 显示错误,即 Uncaught SyntaxError: Unexpected token 'export' 。我搜索了网络,原因是我试图在节点 js 环境中使用 ES6 导入/导出语法。所以我使用 esm 包运行了我的 server.js 文件。
node -r esm app.js
app.js 文件 -
const express = require('express');
const app = express()
app.get('/', function (req, res) {
res.sendFile(__dirname+'/index.html')
})
app.use(express.static(__dirname))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
这也不起作用,返回 unexpected token export 的相同错误。谁能帮帮我?
注意:- 我的 app.js 文件是一个简单的 express 文件,它使用 file1.js 对 HTML 页面有一个 get 请求。
【问题讨论】:
-
如果您使用节点语法,则需要使用
module.exports = {socket}而不是export default。 -
你需要 babel 包来编译你的代码。然后导入导出将起作用。
-
@DorianB,我尝试使用 module.exports 但它抛出错误“未捕获的 ReferenceError:模块未定义。”
-
@QubaishBhatti 尝试使用 bable 但后来发现这篇文章 timonweb.com/tutorials/…
-
天哪!和@DorianB一起去,然后做
var socket = require('path_of_file')
标签: javascript node.js ecmascript-6