Nodejs – 多个发布请求
我已经创build了一个使用Nodejs的小型快递服务器,目前我能够处理一个单一的发布请求 – 检查用户是否存在。
我需要添加一个额外的post请求,这将允许我注册一个新的用户。 注册请求来自一个单独的HTML页面,其中包含一个标准的registry单。
鉴于我看过的post头部的例子都是一样的:
app.post('/', function (req, res)
我如何区分这些请求?
我的代码:
var express = require('express'); var bodyParser = require('body-parser'); var mysql = require('mysql'); 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"); } }); var app = express(); // instruct the app to use the `bodyParser()` middleware for all routes app.use(bodyParser()); app.use(express.static(__dirname + '/public')); app.post('/', function (request, response) { console.log('searching for user: ', request.body.usr); //console.log(request.body.pass); var usr = request.body.usr; var pass = request.body.pass; connection.query('SELECT * FROM eclipse_users WHERE username=? AND password = md5(?)', [usr, pass], function (err, rows, fields) { if (!err) { //console.log('The solution is: ', rows); var n_rows = rows.length; console.log('number of rows returned: ', n_rows); if (n_rows == 1) response.json({ msg: 'user exists' }); else response.json({ msg: 'user does not exist' }); } else { console.log('Error while performing Query.'); connection.end(); } }); }); app.listen(80, "127.0.0.1"); console.log('Server running at http://127.0.0.1:80/');
一种方法是:
app.post('/:register', function(request, response){ console.log('registering user: ',request.body.usr); }
调用post时通过注册标志。
但是,如果您使用app.get,则检查用户有效性的代码会更好:
app.get('/', function(...)) {...}
这样你可以有一个app.post没有注册variables的注册部分。
变体1,另一个url:
app.post('/registration', function (req, res) { // ... });
变体2,参数操作:
app.post('/:action', function (req, res) { if (req.param('action') === 'registration') { // ... } });
变体3,通过邮政行动:
app.post('/', function (req, res) { if (req.param('action') === 'registration') { // ... } });