Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

新手请教,关于Express查询字符串的路由方法

$
0
0

我在之前没有接触过PHP,用过Django写简单的静态Web应用,目前有项目需要实现搜索功能,用Express来实现。 我想要用户在搜索框中输入内容后提交POST请求之后路由到类似/search?keyword=xxx的带查询字符串的URL上, 一开始尝试post之后res.redirect(),然后再写一个接受这个redirect的get请求路由,用正则表达式/s\?wd=.+/ 好像不太行,有没有什么方法能实现这样的功能,或者说这么做有没有必要?谢谢


不好意思,刚知道实际上query string不是路由的一部分,那么当我们在搜索引擎的搜索框输入内容之后post,浏览器的URL显示bar会有query string如下图 Screenshot from 2017-03-30 00-17-33.png这样的效果在node express等web框架中如何简单地实现呢?

以下是失败的尝试代码:

/* form in home page 首次搜索 */
router.post('/', function(req, res, next) {
		var q = req.body.query; //HTML代码input标签对应的name属性是query
		res.redirect('/s?wd='+q.replace(/ /g,'+'));
});
/* 第二次以后的搜索 */
router.post(/s\?wd=.*/, function(req, res, next) {
        var q = req.body.query;
        console.log(query);
        res.redirect('/s?wd='+q.replace(/ /g,'+'));
});
/* get接收前面写的redirect()做渲染等工作 */
router.get(/s\?wd=.*/, function(req, res, next) {
        var query = req.query.wd;
        console.log(query);
        res.render('search', {q: query});
});

Viewing all articles
Browse latest Browse all 14821

Trending Articles