当我尝试运行一个非常简单的本地节点服务器时(请参见下面的代码),我会收到以下错误消息:
从“http://localhost:8080/importing.js”加载模块被阻止,因为 MIME 类型不允许(“text/html”)。
我对Node和ES6模块都很陌生,所以我不太了解问题的细节。根据这个URL,必须明确为模块提供mime-type“application/javascript”。但是在我的下面的示例中如何实现呢?
从“http://localhost:8080/importing.js”加载模块被阻止,因为 MIME 类型不允许(“text/html”)。
我对Node和ES6模块都很陌生,所以我不太了解问题的细节。根据这个URL,必须明确为模块提供mime-type“application/javascript”。但是在我的下面的示例中如何实现呢?
index.html
<!DOCTYPE html>
<html>
<head>
<script src="./importing.js" type="module"></script>
<meta charset="utf-8">
</head>
<body>
</body>
</html>
server.js
var http = require('http');
var fs = require('fs');
const PORT=8080;
fs.readFile('./index.html', function (err, html) {
if (err) throw err;
http.createServer(function(request, response) {
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
}).listen(PORT);
});
importing.js
import {a} from './exporting.js';
console.log(a);
exporting.js
export const a = 'Constant a';
我在CMD中使用以下命令启动服务器:
node server.js