2015-05-28 28 views
0

我已經在Nodejs中編寫了一個小型服務器,它是在同一臺機器上運行的更大的輔助服務器。 「主」服務器處理不同的請求,然後這個「補充」服務器。NodeJS - 在端口8080上沒有任何響應

「主」服務器的80端口監聽,而「補充」服務器在端口8080

聽取如果我嘗試訪問「補充」的服務器,像這樣:

http://172.31.16.218:8080/

我得到的網頁,但是當我試圖訪問:

http://172.31.16.218:8080/update_highscores

時I g 「無法顯示網頁」等錯誤

這裏我我的代碼:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var mysql = require ('mysql'); 
var winston = require('winston'); 

var app = express(); 
var connection = mysql.createConnection({ 
    host: '127.0.0.1', 
    user: 'root', 
    password: '12345678', 
    database: 'project_eclipse', 
    port: 3306 }); 

    connection.connect(function(err){ 
    if(!err) { 
     console.log("Database is connected ... \n\n"); 
    } else { 
     console.log("Error connecting database ... \n\n"); 
    } 
    }); 


// instruct the app to use the `bodyParser()` middleware for all routes 

app.use(bodyParser()); 
app.use(bodyParser.text()); 
app.use(express.static(__dirname + '/public')); 

app.post('/update_highscores', function(request, response) 
{ 

    var usr = 'user1'; 
    console.log('update_highscores searching for user: ',usr); 

    connection.query ('SELECT user_id FROM eclipse_users WHERE username=?', [ usr ], function(err, rows, fields) { 

     if (!err) 
     { 
     response.send('got user id back'); 
     } 
    else 
    { 
     console.log('Error while performing Query.'); 
     response.send('ERROR - server error was encountered - please try again later'); 
     connection.end();} 
     }); 
}); 

app.listen(8080,"127.31.16.218"); 
console.log('Server running at http://127.31.16.218:8080/'); 

在此先感謝。

+3

難道這是因爲'app.post()'只爲HTTP POST請求定義了一個路由,而瀏覽器中的頁面導航通常會發送一個HTTP GET請求? –

+0

@MikeTunnicliffe當然可以。 –

+0

@KevinB只是通過文檔閱讀,它似乎很可能是這個原因。 –

回答

2

如果您只是在瀏覽器中訪問網址http://172.31.16.218:8080/update_highscores,那將是一個GET請求,而不是POST請求,因此您需要使用app.get()app.all()路徑來處理該請求。您的app.post()路由將僅捕獲實際爲POST請求的請求。

+0

謝謝,我想這就是複製粘貼代碼時發生的情況。 –