2016-06-30 21 views
0

私はアンドロイドアプリのノードバックエンドを構築しようとしていて、いくつか問題があります。 localhost:8080に接続すると、私はいつもGETできません/。ここでNode.jsとexpressはGETできません/

はapp.jsのための私のコードです:

var app  = module.exports ; 

module.exports = function(app){ 
    app.get('/', function(req, res){ 
     res.end("Node-Android"); 
    }); 
} 

はまだ私がローカルホストに移動しようとしている/たびに取得することはできません取得しています:

/** Dependencies **/ 
var express = require('express'); 
var connect = require('connect'); 
var app  = express(); 
var port = process.env.PORT || 8080; 

//Configurations 
app.use(express.static(__dirname + '/public')); 
app.use(connect.logger('dev')); 
app.use(connect.json()); 
app.use(connect.urlencoded()); 

//Routes 

require('./routes/routes.js'); 

app.listen(port); 
console.log("The App is running on port " + port); 

は、これはroute.jsファイルです:8080/

私は何かを見逃しているか、何かひどく間違ったことをしましたか? 希望は私は男が:)

答えて

2

あなたroutes.jsモジュールはこのラインで引数(appオブジェクト)を必要とコンストラクタ関数を宣言します。

module.exports = function(app){ ... } 

しかし、あなたはちょうどこのようなモジュールを含むされています

require('./routes/routes.js'); 

ことつまり、モジュールをロードするだけですが、コンストラクタを呼び出すことはありません。だから、代わりに、あなたはこれを変更する必要があります。これに

require('./routes/routes.js'); 

require('./routes/routes.js')(app); 

コンストラクタを呼び出して、それにそれはそのルートを初期化するために使用できることが望まappオブジェクトを渡します。また


あなたがこれを行う場合は、あなたのモジュール内のコードの誤解を招くと、不要なラインを持っている:

var app  = module.exports ; 

特定app変数は、あなたのモジュールの任意の場所で使用しているので、それは誤解を招くのですされていないことコンストラクタ関数のappパラメータと同じ名前です。 routes.jsモジュールからその行を削除するだけです。誤解を招き、不要です。

+0

徹底的な回答ありがとうございます。私は今働くようになった! –

+0

@OskarMartin - あなたがここで新しいかもしれないように見えるので、あなたの質問に答えられたなら、最良の答えの隣にある緑色のチェックマークをクリックする必要があります。それはコミュニティにあなたの質問が答えられたことを示し、適切な手順に従うためのいくつかの評判ポイントを得るでしょう。 – jfriend00

+0

ヘッドアップありがとう! –

2
require('./routes/routes.js'); 

require('./routes/routes.js')(app)である必要があり、ここからの助けを得ます。

関連する問題