我是node.js和javascript的初学者。
我想在HTML代码中包含外部javascript文件。这是html代码“ index.html”:
<script src="simple.js"></script>
并且,这是JavaScript代码“ simple.js”:
document.write('Hello');
当我直接在网络浏览器(例如Google Chrome)上打开“ index.html”时,它可以工作。(“ Hello”消息应显示在屏幕上。)
但是,当我尝试通过node.js http服务器打开“ index.html”时,它不起作用。这是node.js文件“ app.js”:
var app = require('http').createServer(handler) , fs = require('fs') app.listen(8000); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); }
(“ index.html”,“ simple.js”和“ app.js”在同一目录中。)我启动了http服务器。(通过“ bash $ node app.js”)之后,我尝试连接“ localhost:8000”。但是,“ Hello”消息不会出现。
我认为“ index.html”未能在http服务器上包含“ simple.js”。
我应该怎么做?
问题在于,浏览器要求的数值是多少,您将返回“ index.html”。因此,浏览器将加载您的页面并获取html。该html包含您的脚本标签,浏览器向节点询问脚本文件。但是,您的处理程序设置为忽略请求的内容,因此它仅再次返回html。