2016-10-23 11 views
0

私はStackoverflowを初めて使っていますが、通常は何か問題があったとき、通常はここで解決策を見つけることができましたが、今回はしませんでした。node.jsサーバーと.htmlファイル

私は2日前にnode.jsで作業を始めました。私はnode.jsで私のhttpサーバを作ったし、いくつかのテスト目的のために私は数ヶ月前に作ったページを持っていますが、私のコンピュータ上で私のページをホストするとき、それは動作しますが、jQueryのようなHTMLページに含まれるjavascriptファイルいくつかのグラフはlibです。

IEデバッガでデバッグしようとしましたが、解決できません。

面白いのは、ディスクから同じページを開いたときに、.htmlファイルをダブルクリックするだけで、エラーなく正常に動作します。

私の質問は仕事をするために何をすべきか? node.jsで何かを逃しましたか?

は、私は、ページ上の1つのHTML5のcanvas要素を持っているし、多分それは問題がある

これは私のindex.html

<html xmlns="http://www.w3.org/1999/xhtml"> 


<head> 
<title>Hello Dialog</title> 

<meta content="IE=edge" http-equiv="X-UA-Compatible"> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 
<meta http-equiv="Cache-Control" content="no-store"> 
<meta http-equiv="cache-control" content="max-age=0"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT"> 
<meta http-equiv="pragma" content="no-cache"> 


<link href="css/ui-lightness/jquery-ui-1.9.2.custom.css" rel="stylesheet" type="text/css" /> 

<script type="text/javascript" src="RGraph.line.js"></script> 
<script type="text/javascript" src="RGraph.common.core.js"></script> 
<script type="text/javascript" src="RGraph.drawing.background.js"></script> 


<script type="text/javascript" src="./js/jquery-1.8.3.js"></script> 


<script type="text/javascript" src="./js/jquery-ui-1.9.2.custom.min.js">  </script> 



<script type="text/javascript" src="index.js"></script> 
<script type="text/javascript" src="temperature(1).json"></script> 

</head> 
<body style="font-size: 10px;"> 

<button id="btn_hello">Say Hello</button> 
<button id="btn_hello1">LUKA</button> 
<button id="btn_hello2">ANJA</button> 
<button id="btn_hello3">MARKO</button> 

<div id="dlg_hello">Hello World!</div> 
<canvas id="graph" width="600" height="500"></canvas> 

<script> 

var data = []; 
var limit; 
var Temp = []; 
var TimeStamp = []; 

function readTextFile(file, callback) { 
    var rawFile = new XMLHttpRequest(); 
    rawFile.overrideMimeType("application/json"); 
    rawFile.open("GET", file, true); 
    rawFile.onreadystatechange = function() { 
     if (rawFile.readyState === 4 && rawFile.status == "200") { 
      callback(rawFile.responseText); 
     } 
    } 
    rawFile.send(null); 
} 




readTextFile("temperature(1).json", function(text){ 
    data = JSON.parse(text); 

    for(var i =0; i<Object.keys(data).length; i++) 
    {  
     //alert(parseFloat(data[i].TimeStamp)); 
     TimeStamp[i] = data[i].TimeStamp; 
     Temp[i] = parseFloat(data[i].Value); 

    } 

    DrawGraph(Temp, TimeStamp); 

}); 

function DrawGraph(data, timestamp) 
{ 
    var line = new RGraph.Line({ 
     id: 'graph', 
     data: data, 
     options: { 
      labels: timestamp, 
      gutterLeft: 55, 
      gutterRight: 35, 
      gutterBottom: 35, 
      gutterTop: 35, 
      title: 'A basic line chart', 
      backgroundGridColor: '#aaa', 
      backgroundGridDashed: true, 
      textAccessible: true, 
      scaleZerostart: true, 
      labelsOffsety: 5 
     } 
    }).draw(); 
} 

</script> 
</body> 
</html> 

であり、これはNode.jsの中server.jsある

var http = require("http"); 
var fs = require("fs"); 
var windows1250 = require("windows-1250"); 

var ht = fs.readFileSync('./index.html',"utf-8"); 

http.createServer(function (req, res) { 

     res.writeHead(200, {'Content-Type': 'text/html','Content-Length':ht.length}); 
     res.write(ht); 
     res.end(); 
     console.log(req.url); 


    }).listen(8888, function() {console.log("server is listening on port 8888");}); 
+0

リソースファイルがサーバーから送信されていないようです。他のファイル(jsスクリプトとCSS)ではなく、インデックスHtmlのみを送信しています –

+0

expressで外部jsとcssを使用できます –

答えて

1

サーバーは、javascriptファイルの場所を認識していません。あなたはexpress.jsの使い方を調べたいかもしれません。これにより、express.staticコマンドを使用できます。

0

あなたはファイルをホストしていません。サーバーはJavaScriptファイルを探す場所を知らないので、単にそれらを含んでいません。

serve-static、またはより良い解決策を探してください。express
もう1つの同様の回答hereがあります。

0

私はあなたがこのようなHTMLを読むことができ、nodejsに覚えている:あなたは、ファイルのより良い場所にパスをしたい場合、あなたはその後、それはこのようになります

var path = require('path'); 
path.join(__dirname, '/path/html'); 

を使用することができます

var fs = require('fs'); 

fs.readFile('/path/html', 'utf8', function (err, data) { 
    if (err) { 
    console.log(err); 
    } else { 
    res.send(data); 
    } 
}); 

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

var file = path.join(__dirname, '/path/html'); 

fs.readFile(file, 'utf8', function (err, data) { 
    if (err) { 
    console.log(err); 
    } else { 
    res.send(data); 
    } 
}); 
関連する問題