为什么控制台在使用模块时会抛出错误?

时间:2020-07-04 06:16:26

标签: javascript module

我正在具体学习JavaScript模块,并且想测试我所学到的关于模块的所有内容,但是当我连接文件并运行它时会抛出错误,我不明白为什么。

这是错误:

enter image description here

这是HTML:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Modules</title>
  </head>
  <body>
    <script type="module" src="script.js"></script>
  </body>
</html>

第一个JS文件:

export const module = {
  one: "one",
  second: "second",
  third: "third"
};

第二个JS文件:

import {module} from "./modules.js";

console.log(module);

请说出问题所在,我该怎么办?

1 个答案:

答案 0 :(得分:1)

很明显在控制台中显示错误消息。

您应该运行网络服务器(例如nginx),并根据定义为使用HTTP请求运行服务器的服务器将文件放置到正确的文件夹中。

EX:运行一个简单的node.js服务器

  1. 创建 package.json 并安装Express软件包。

package.json

{
  "name": "example",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.17.1"
  },
  "scripts": {
    "start": "node server.js"
  },
}
  1. 编写一个非常简单的 server.js 文件。

server.js

const express = require('express');
const app = express();

app.get("/", (req, res) => {
    res.sendfile(__dirname + '/index.html', err => {
        if (err) res.send(404);
    });
});

app.get(/(.*)\.(js)/i, (req, res) => { // it also can add other filenames extension
    res.sendfile(__dirname + "/" + req.params[0] + "." + req.params[1], err => {
        if (err) res.send(404);
    });
});


app.listen(3000, () => { // port can be modified
    console.log('Listening on port 3000!');
});
  1. 将所有文件和以上文件放在同一文件夹中。

  2. 运行 npm start node server.js 以启动服务器。