2017-04-02 18 views
1

私はnodejsを使用しており、APIエンドポイントを表現していますが、私はapp.useを使用してルートを処理していますが、私が何をしても応答しません。エクスプレスがルートに応答しません

var express = require("express"); 
var mongoose = require('mongoose'); 
var path = require("path"); 
var favicon = require("serve-favicon"); 
var http = require('http'); 

var app = express(); 

var config = require('./conf/config'); 

var PORT = config.PORT; 

mongoose.connect(config.MONGODB); 

//route handlers 

app.use('/', function(req, res) { 
    console.log("Hello"); 
}); 

var server = http.createServer(function(req, res) { 
    console.log("Request received", req.url); 
}); 

server.listen(PORT); 
console.log("Server running on port", PORT); 

私はルートルート上で、すなわち/を要求するが、それは何もしていない時はいつでもそれは、コンソール上でハロー印刷する必要があります。

答えて

2

Expressコードが正しくありません。プレーンなWebサーバーを作成していますが、WebサーバーはExpressに接続されていません。特別な種類のサーバー(httpsサーバーなど)を作成しようとしていない場合は、app.listen(PORT)を使用してExpressをサーバーに作成させてから、サーバーを作成してそのサーバーまでフックします。

私はこのことをお勧め:

var express = require("express"); 
var mongoose = require('mongoose'); 
var path = require("path"); 
var favicon = require("serve-favicon"); 

var app = express(); 

var config = require('./conf/config'); 
var PORT = config.PORT; 

mongoose.connect(config.MONGODB); 

//route handlers 

app.get('/', function(req, res) { 
    console.log("Hello"); 
    res.send("Hello"); 
}); 

app.listen(PORT); 
console.log("Server running on port", PORT); 

注:私はあまりにもカップル他のものに変更。私はapp.get()に切り替えました。あなたはいつもブラウザの何らかの応答を送る必要があるので、ちょうど待って何かが戻るのを待つので、res.send()を挿入しました。

+0

ああ、あなたは私に感謝しました。 –

0

app.useの代わりにapp.getを使用してみてください。後者は、ミドルウェアなどを使用してサブルートをマウントするために使用されますが、実際には要求ハンドラを構成するためには使用されません。

+0

はい私はこれをサブルートの方法で使用しています。ここに貼り付けるだけで編集しました。 –

関連する問題