一尘不染

如何在node.js客户端上包含javascript?

node.js

我是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”。

我应该怎么做?


阅读 237

收藏
2020-07-07

共1个答案

一尘不染

问题在于,浏览器要求的数值是多少,您将返回“
index.html”。因此,浏览器将加载您的页面并获取html。该html包含您的脚本标签,浏览器向节点询问脚本文件。但是,您的处理程序设置为忽略请求的内容,因此它仅再次返回html。

2020-07-07