美文网首页
【翻译】Node.js 教程 —— 查询字符串

【翻译】Node.js 教程 —— 查询字符串

作者: kyuan | 来源:发表于2019-02-18 22:10 被阅读5次

这节课讨论查询字符串(query string)。

什么是查询字符串?查询字符串是一种以键值对形式附加于 http 请求的数据,常见于博客分页,用于指示当前浏览页属于第几页 /blog/news?page=2,如下图

查询字符串

构造查询字符串的方式

  • url 后,以 ? 打头
  • 键值对:key=value 的形式
  • 多对键值对通过 & 分割:key1=value1&key2=value2
  • 最终格式:http://xxx.com/blog/news?key1=value1&key2=value2

如果我们发起一个带有额外数据(查询字符串)的请求,服务端应用中我们需要获取该请求并抽取这份额外的数据。

以前面的 /contact 为例,该请求可以通过查询字符串的形式带上联系人联系人所属部门的信息

express 中通过 request 对象的 query 属性进行获取查询字符串

app.get('/contact', function(req, resp){
    console.log(req.query); // {person:'ryu',department:'software'}
});

然后就可以将从请求拿到的查询字符串数据放到 ejs 里面进行渲染,这样子 contact 的表单就可以默认带上请求上查询字符串的数据了。

app.get('/contact', function(req, resp){
    resp.render('contact.ejs', {
        qs: req.query
    });
});
'contact.ejs'
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>contact</title>
</head>
<body>
    <form>
      <label>
        Person
        <input type="text" value="<%= qs.person%>">
      </label>
      <label>
        department
        <input type="text" value="<%= qs.department%>">
      </label>
    </form>
</body>
</html>

相关文章

网友评论

      本文标题:【翻译】Node.js 教程 —— 查询字符串

      本文链接:https://www.haomeiwen.com/subject/ddemeqtx.html