我正在使用expressjs,我希望从这个URL获取请求对象
http://www.thedomain.com/membername/category/item?item=abc
在服务器端。我正在尝试使用
// app.js
var express = require('express');
var routes = require('./routes/index');
var app = express();
app.use('/*', routes);
在'./routes/index'中:
//'./routes/index''./routes/index'
var express = require('express');
var config = require('../config');
var router = express.Router();
var url = require('url');
/* GET category page. */
router.get('/category', function(req, res, next) {
console.log(' pathname: ',url.parse(req.url).pathname)
res.render('index', {
title: url.parse(req.url).pathname
});
});
实际上,我无法获得会员名称的价值
我想知道如何在类别路由器的查询字符串中的进程项值之前获取membername的值。我还想知道如何编写一个正则表达式,接受路由器的所有成员名值,该路由器作为预处理模块保留在类别路由器的前面。
感谢您的所有评论和回答
答案 0 :(得分:1)
req.get('/:memberName/category/item', function(req, res, next) {
// do whatever you want with req.prams.memberName here...
next();
});
req.get('/:memberName/category/item', function(req, res, next) {
// now do whatever you want with req.query.item here...
});
答案 1 :(得分:1)
由于您建议您只想限制字母和数字(也许也是_),请使用正则表达式:
req.get('/\w+/category/item', function(req, res, next) {
// Access membername via req.params[0]
});
我对Express路线和正则表达式运气不好,但我相信Express 4.0中已经解决了这个问题。