我在Nodejs中编写了一个小型服务器,它是一个在同一台机器上运行的更大的服务器。 "主人"服务器处理不同的请求然后这个"补充"服务器
"主人"服务器正在端口80上侦听"补充"服务器正在侦听端口8080。
如果我尝试访问"补充"像这样的服务器:
我确实收到了主页,但是当我尝试访问时:
http://172.31.16.218:8080/update_highscores
我收到错误"页面无法显示"
这是我的代码:
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/');
提前致谢。
答案 0 :(得分:2)
如果您只是访问浏览器中的网址http://172.31.16.218:8080/update_highscores
,那将是GET请求,而不是POST请求,因此您需要app.get()
或app.all()
路由处理这个问题。您的app.post()
路由只会捕获实际POST请求的请求。