2017-02-25 12 views
0

d3ノードパッケージを使用してプロジェクト用の静的フォルダを作成する際に問題が発生しています。私はexpressのように見えるserver.jsをホストしています。index.htmlと他のtsvファイルをホストするエクスプレスノードに静的フォルダを作成する

var express = require("express"); 
var app = express(); 
var path = require('path'); 


app.use(express.static("public")); 

var server = app.listen(8081, function() { 
    var host = server.address().address; 
    var port = server.address().port; 
    console.log("Example app listening at http://%s:%s", host, port); 
}); 

これは、純粋にindex.htmlファイルと、htmlファイルで呼び出される.tsvファイルをホストするためのものです。私のサーバーのディレクトリが、私はもともと

app.get("/", function(req, res){res.sendFile(index.html);}) 

を使用しての回避策を使用/ 得ることができないというエラーを取得し、これは単なるhtmlファイルのために働いていたが、今私が必要この

-Parent file 
    -public 
     |index.html 
     |data.tsv 
    -node_modules 
    server.js 

のように見えます.tsvファイルを使用するとこれは動作しないようです。

EDIT:データが

d3.tsv(<file>, function(error, d){ /* stuff you want executed after data loads goes here */}); 
+0

tsvファイルがindex.htmlでどのように呼び出されるかを共有できますか? – pandamakes

+0

私はちょうど編集を作った –

+0

あなたはエラーまたはdのconsole.logを貼り付けることができますか? – pandamakes

答えて

0

express.static("public")は、作業ディレクトリからの相対ディレクトリpublicを使用するあるロードD3の方法。

server.jsと同じディレクトリでスクリプトを開始してください。これは期待通りに機能しています。

あなたは

express.static(path.resolve(__dirname, "public")) 

を使用することができ、それはあなたが同じディレクトリから開始されていないpublic場合もございます。

+0

私は、親ディレクトリで作業しているときに "node server.js"(スクリプトを開始する)を実行しています。 –

0

app.use(express.static('public'))を取得する場合は、ブラウザのノードserver.jsの後にGET http://127.0.0.1:8081/data.tsvを実行してください。ブラウザがファイルを取得できるかどうかを確認してください。

app.get('/*',function(req,res){ 
    res.sendFile('./public/'+req.url) 
}) 

http://127.0.0.1:8081/index.html経由index.htmlにアクセスし、ときにブラウザ、またはしようとしd3js:お使いのブラウザがファイルをGETすることができた場合は、周りの仕事があるかもしれない<ファイルに>

タイプミスがあるかもしれませんhttp://127.0.0.1:8081/data.tsv経由でtsvファイルを取得すると、ノードが配信されます./public/data.tsv

関連する問題