资讯专栏INFORMATION COLUMN

express 框架中的参数小记

Pandaaa / 970人阅读

摘要:查询字符串中的参数要用比如这样的请求,应该是要用和来获取和的值,最终打印出如下关于此外,框架本身是没有解析的如果打印出来则说明没有安装解析的插件为了解析一般可以安装这个插件假设是的实例在所有路由前插入这个中间件这样就可以了。

首发地址: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-urlencoded

aaa=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 之类的其他中间件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/82318.html

相关文章

  • nodejs之express小记

    摘要:如果说用一句话来概括那就是它开启了服务器端语言。系列的文章并不会从一开始长篇概论的讲的历史,安装,以及其他很琐碎的事情。只会专门介绍关于或者准确来讲是关于的敏捷开发。性能不对已有的特性进行二次抽象,我们只是在它之上扩展了应用所需的基本功能。 如果说用一句话来概括Node那就是:它开启了JavaScript服务器端语言。 Node系列的文章并不会从一开始长篇概论的讲Node的历史,安装,...

    awokezhou 评论0 收藏0
  • 服务器迁移小记

    摘要:网站的迁移迁移主要用到了命令,当然网站小文件比较多的情况下例如,那么最好先打包在远程拷贝,速度会快很多。但是在服务器上安装的时候死活提示缺少依赖。 从 vultr 迁移到 digitalocean 几个月前收到 digitalocean 发来的邮件,说因为我邀请用户注册并达到他的要求,送了我50刀的额度,本来就没想到它能送,结果不久之前它又送了一次,果断让我产生了回到它的怀抱的念头,...

    Karrdy 评论0 收藏0
  • async语法升级踩坑小记

    摘要:普通的回调函数调用执行后续逻辑使用了以后的复杂逻辑获取到正确的结果输出两个文件拼接后的内容虽说解决了的问题,不会出现一个函数前边有二三十个空格的缩进。所以直接使用关键字替换原有的普通回调函数即可。 从今年过完年回来,三月份开始,就一直在做重构相关的事情。 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构。 包含从callback+async.w...

    VioletJack 评论0 收藏0
  • Java反射学习小记

    摘要:反射使用类对象提供的基本元数据,能从类对象中找出方法或字段的名称,然后获取表示方法或字段的对象。常见的反射手段有反射和反射。以之前的反射为例其中指定了方法的返回类型,其实不止如此。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法 生成动态代理 很多框架...

    frank_fun 评论0 收藏0
  • 动态网站SEO解决方案经验汇总

    摘要:动态网站解决方案汇总先撸撸几个概念单页面应用,基于框架开发的项目很多都属于单页面应用。搜索引擎优化,指通过对网站进行站内优化修复和站外优化,从而提高网站的网站关键词排名以及公司产品的曝光度。为了防止进程挂掉,可以使用来启动,。 动态网站 SEO解决方案汇总 先撸撸几个概念: SPA:单页面应用,基于vue框架开发的项目很多都属于单页面应用。 SSR :server side rend...

    UsherChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<