首页 > 解决方案 > 导出 node.js 的问题

问题描述

我正在尝试将变量从一个 js 文件导入到 node.js 环境中的另一个。以下是仅包含重要部分的文件 -

文件1.js

var socket = io.connect();
export default socket;

文件2.js

import socket from "./chat.js";

我的 file1.js 显示一个错误,即 Uncaught SyntaxError: Unexpected token 'export' 。我搜索了网络,原因是我试图在节点 js 环境中使用 ES6 导入/导出语法。所以我使用 esm 包运行了我的 server.js 文件。

节点 -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!'))

这也不起作用,返回意外令牌导出的相同错误。谁能帮帮我?

注意:- 我的 app.js 文件是一个简单的 express 文件,它使用 file1.js 对 HTML 页面有一个 get 请求。

标签: javascriptnode.jsecmascript-6

解决方案


如果您不想使用 ESM 模块语法,则此代码将起作用:

文件 1.js:

const socket = { test: 1 }
module.exports = socket

文件 2.js:

const socket = require('./file1')
console.log(socket)

运行node file2.js会记录{ test: 1 }。它使用节点模块语法而不是 ESM 之一,但它可以工作。


推荐阅读