首发地址:https://clarencep.com/2017/04...
转载请注明出处

注意:req.params 只有在参数化的路径中的参数。查询字符串中的参数要用 req.query.

比如:

// server.js:
app.post('/user/:id', function(req, res){console.log('req.params: ', req.params)console.log('req.query: ', req.query)console.log('req.body: ', req.body)
})
// HTTP request:
POST /user/123?foo=1&bar=2
Content-Type: application/x-www-form-urlencodedaaa=1&bbb=2

这样的请求,应该是要用 req.query.fooreq.query.bar 来获取 foo 和 bar 的值,最终打印出如下:

req.params:  { id: '123' }
req.query:  { foo: '1', bar: '2' }
req.body:  { aaa: '1', bbb: '2' }

关于 req.body

此外,express 框架本身是没有解析 req.body 的 -- 如果打印出来 req.body: undefined则说明没有安装解析 req.body 的插件:

为了解析 req.body 一般可以安装 body-parser 这个插件:


// 假设 `app` 是 `express` 的实例:const bodyParser = require('body-parser')// 在所有路由前插入这个中间件:app.use(bodyParser.urlencoded())

这样就可以了。

bodyParser.urlencoded()是HTML中默认的查询字符串形式的编码,即application/x-www-form-urlencoded. 如果需要解析其他格式的,则需要分别加入其他格式的中间件,比如:

  • bodyParser.json() 支持JSON格式(application/json

  • bodyParser.raw() 将会把 req.body 置为一个 Buffer (Content-Type:application/octet-stream)

  • bodyParser.text() 将会把 req.body 置为一个 string (Content-Type: text/plain)

然而上传文件用的 multipart/form-data 格式却没有被 bodyParser 所支持,需要使用 busboy 之类的其他中间件。

express 框架中的参数小记相关推荐

  1. express框架中res和rep属性

    express框架中res和rep属性 const express = require('express'); const router = express.Router() router.get(' ...

  2. 关于Scrapy爬虫框架中meta参数的使用示例演示(下)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 络纬秋啼金井阑,微霜凄凄簟色寒. ...

  3. 二十一、pug模板在Express框架中的集成

    在未讲相关的模板引擎之前前面的篇目中所使用的网页页面大多是静态资源的网页内容,如在之前的案例中就使用过 app.use(express.static('path.join(__dirname,'pub ...

  4. Express框架中如何引用ejs模板引擎

    1.如何在项目中安装ejs模板引擎 在NodeJS指南中利用利用以下命令建立网站的基本结构: express -t ejs microblog 运行这个命令后继续运行 cd microblog &am ...

  5. 对比原生Node封装的Express路由 和 express框架路由

    文章目录 前言 一.routes.js 1.引入模块 2.changesRes() - send() 3.getFileMime() - type() 4.initStatic 5.server() ...

  6. Express框架的请求处理~非常详细

    下面是对Express请求处理的整理,希望可以帮助到有需要的小伙伴~ 文章目录 Express请求处理 构建模块化路由 GET参数的获取 POST参数的获取 app.use()方法 Express路由 ...

  7. Node 笔记肆章 Express框架

    1. Express框架简介及初体验 1.1 Express框架是什么 Express是一个基于Node平台的WEB应用开发框架,它提供了一系列的强大特性,帮助你创建各种WEB应用.我们可以使用 np ...

  8. express框架日志处理组件morgan

    morgan是express默认的日志中间件,通过插拔方式引入express框架中,本文将从以下几方面内容展开. 日志控制台显示 // 安装包 $npm install express morgan ...

  9. Go语言WEB框架:请求参数处理

    获取请求参数 wego框架中请求参数可以使用一个统一的Param对象来获取,Param对象可获取以下类型的参数: URL路径参数 << 路径参数是从url的Path中匹配的参数,路径参数通 ...

最新文章

  1. 自动驾驶软件工程课程之SLAM(2)
  2. Android 系统权限
  3. 《零基础》MySQL DELETE 语句(十五)
  4. 使Tomcat可以下载中文文件
  5. java做网页客户端_如何成为 Java web开发者
  6. java 线程安全Long_【Java】线程安全之原子性Atomic(AtomicInteger|LongAdder|AtomicLong)
  7. 【Oracle】查看用户的信息(状态、默认表空间等)
  8. mysql日志监控 zabbix_zabbix 监控mysql日志
  9. Linux--vmlinuz、vmlinux、initrd
  10. 浙大翁凯老师Java课堂学习记录(第三周)
  11. 王者荣耀体验服怎么显示服务器,王者荣耀体验服怎么进 王者荣耀体验服申请攻略...
  12. 程序员如何动手打造属于自己的智能家居
  13. 安卓扫描银行卡获取卡号信息
  14. workerman 7272端口被占用
  15. Linux之C++获取系统用户名
  16. linux ping不通自动关机脚本,服务器断电自动关机bat脚本
  17. BugMeNot:查找和共享登录名(一个神奇的网站)
  18. 用Unity写一个12306验证器的恶搞图生成软件
  19. 吉林大学软院夏令营面试
  20. 建站百科|「联系我们」页面设计指南(内附案例)

热门文章

  1. 【配置文件】log4j是什么log4j
  2. 解决远程连接mysql很慢的问题(mysql_connect 打开连接慢)
  3. SOA 案例研究:SOA 设计
  4. 重新封装了一下NODE-MONGO 使其成为一个独立的服务.可以直接通过get/post来操作
  5. 《THE LEAN STARTUP》 《精益创业》
  6. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)
  7. hdu2413 二分+二分匹配
  8. 【Flutter】ExpansionTile 可折叠列表
  9. 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板
  10. 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )