Node.js:JustGage未定义

时间:2018-02-20 08:53:34

标签: javascript html node.js npm justgage

我正在尝试编写一个简单的基于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 package解决问题
npm install justgage

但是,当我写

var jg = require('justgage');

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

1 个答案:

答案 0 :(得分:3)

node.js不提供静态文件夹。

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

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

this线程

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