0

我正在尝试编写一个简单的基于 node.js 的应用程序,它可以使用 JustGage(基于 JavaScript 的插件)。以下是我的 Node.js 应用程序。

var http = require('http');
var fs = require('fs');

http.createServer(function (req, res) {
  fs.readFile('index.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    res.end();
  });
}).listen(8080);

以下是 index.html 页面。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Temperature Sensor</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <script type="text/javascript" src="static/resources/js/justgage.js"></script>
  <script type="text/javascript" src="static/resources/js/raphael-2.1.4.min.js"></script>

  <script>
    window.onload = function(){
      var g = new JustGage({
        id: "g_a411_faculty",
          value: 22, 
          min: 10,
          max: 40,
          title: "A411 - Faculty Office",
          label: "Celsius",
          levelColors: [
            "#ffffff",
            "#f9c802",
            "#FF0000"
          ]
      });
    };
  </script>
</head>
<body>
<div id="g_a411_faculty" class="col-sm-6" style="width:400px; height:320px"></div>
</body>
</html>

当我运行代码并在 Google Chrome 中打开http://localhost:8080时,索引页面显示未定义 JustGage 的错误(在开发人员工具中)。但是,当我在 Chrome 中简单地打开 index.html(不使用 Node.js)时,页面可以正常工作。你能帮忙看看我哪里错了吗?

我试图通过安装justgage包来解决这个问题

npm install justgage

然而,当我写

var jg = require('justgage');

这显示了一个参考错误 - 文档未定义。请帮忙!

4

1 回答 1

3

node.js 没有为您的静态文件夹提供服务。

该网站在直接从文件夹运行时可以工作,因为您可以static/...从同一位置访问相对路径。

当您通过 node.js 运行时,您只提供 index.html 而不是相关资产。

线程中讨论了一些提供静态文件/文件夹的有用方法

于 2018-02-20T08:57:25.790 回答