ブラウザからnode.jsが動かせない


ブラウザからserverサイドとしてのJSを動かしたいのですが、ファイル読み込み先のJSファイルがそのまま返ってきてしまいます。PHPをApacheで動かすときはそれ用のモジュールの読み込みをhttpd.confに書きましたが、そのような設定が必要かと思い調べてみましたが、特に情報が無く困っています。以下今やっている手順です。

[code]

    const http = require('http');
    const fs = require('fs');
    
    const hostname = '127.0.0.1';
    const port = 3000;
    const server = http.createServer();
    
    server.on('request', function(req, res){
      if(req.url === "/js/index.js"){
        fs.readFile(__dirname + req.url, function(err, data){
          res.writeHead(200, {'Content-Type' : 'text/javascript', 'Access-Control-Allow-Headers' : 'Origin, X-Requested-With, Content-Type, Accept'});
          res.write(data);
          res.end(); 
        })
      }
    })
    
    server.listen(port, hostname)
    
[/code]

* * *
[code]

    forever start server.js
    
[/code]

* * *
[code]

    localhost:3000/js/index.js #ブラウザからアクセス
    
[/code]

* * *




ソース内でreadFileでjavascriptファイルの中身をとってきて  
text/javascript  
としてヘッダーを返しています。  
そのためブラウザもヘッダーでtext/javascriptって返しているし、中身もJavascriptだから通常のWebサービスのようにJSファイルとして受け取っているのかと思います

ルーティングの基本としてはif文内に書きたい処理を書けばいいと思います。

[code]

      if(req.url === "/js/index.js"){
        //ここに書きたい処理を書いてしまえばいいと思います。
      }
    
[/code]

あとはNodeJS ルーティングで調べればいろいろ出てくるとは思いますが、  
[Express](http://expressjs.com/)を利用することが多いと思います。こちらも参考にしつつ試してみてください。

