机器人大雄 發表於 2019-8-9 09:22:00

node js中的req.body,req.query,req.params取参数

<h1>1、原生node中怎么获取get/post请求参数</h1>
<h2>1.1 处理get请求参数</h2>
<p>使用node自带的核心模块----url模块</p>
<p>url.parse();方法将一个完整的URL地址,分为很多部分,常用的有:host、port、pathname、path、query。<br>第一个参数是地址,<br>第二个参数默认是false,设置为ture后,将字符串格式转换为对象格式。字符串(“a=1&amp;b=2”)转换为了对象格式({a: 1,b: 2})。</p>
<p>代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">var</span> urlObj = url.parse(req.url ,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">var</span> query = urlObj.query;</pre>
</div>
<h2>1.2&nbsp;处理post请求参数</h2>
<p>POST请求一般会提交数据给服务器,服务器在接收数据的时候也是分块接收的;</p>
<p>要想获得post参数对象,需要用到第三方包querystring</p>
<p>代码:</p>
<div class="cnblogs_code">
<pre><span style="font-size: 14px"><span style="color: rgba(0, 128, 128, 1)"> 1</span> const http = require('http'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> const server =<span style="color: rgba(0, 0, 0, 1)"> http.createServer();
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> server.listen(3000, () =&gt; console.log('启动了'<span style="color: rgba(0, 0, 0, 1)">));
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 只要有浏览器发来请求,就会触发下面的事件</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> server.on('request', (req, res) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('123');</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(req.method); // POST</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> POST请求,意思是浏览器提交数据给服务器</span>
<span style="color: rgba(0, 128, 128, 1)">10</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 服务器肯定要接收这些数据,并把这些数据保存</span>
<span style="color: rgba(0, 128, 128, 1)">11</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 如何接收POST提交过来的数据</span>
<span style="color: rgba(0, 128, 128, 1)">12</span>   <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(0, 128, 0, 1)">   * 1. 给req注册data事件,当有数据提交过来就会触发,事件的作用是接收数据,接收大量数据的时候,是分块接收的
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 128, 0, 1)">   * 2. 给req注册end事件,当数据全部接收完毕,会触发
</span><span style="color: rgba(0, 128, 128, 1)">15</span>      <span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 128, 1)">16</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 先定义一个空字符串,里面准备存放接收到的数据</span>
<span style="color: rgba(0, 128, 128, 1)">17</span>   let str = ''<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">18</span>   req.on('data', (chunk) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">19</span>         str += chunk; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 把接收到的一块数据拼接到str中</span>
<span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(0, 0, 0, 1)">    });
</span><span style="color: rgba(0, 128, 128, 1)">21</span>   req.on('end', () =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">22</span>         console.log(str); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> id=1&amp;name=zs&amp;age=43</span>
<span style="color: rgba(0, 128, 128, 1)">23</span>         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 将接收到的数据,赋值给req.body</span>
<span style="color: rgba(0, 128, 128, 1)">24</span>         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> req.body属性本来不存在,是自定义的,你也可以用其他的名字</span>
<span style="color: rgba(0, 128, 128, 1)">25</span>         req.body = querystring.parse(str); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> querystring.parse是将字符串转成对象{id:1,bane:zs,age:43}</span>
<span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 0, 0, 1)">    });
</span><span style="color: rgba(0, 128, 128, 1)">27</span>
<span style="color: rgba(0, 128, 128, 1)">28</span> });   </span> </pre>
</div>
<h1>2、express框架中获取请求的参数方法</h1>
<h2>2.1 req.body</h2>
<p>通常用来解析<span style="color: rgba(255, 0, 0, 1)">POST请求中的数据</span> <br><span style="color: rgba(255, 0, 0, 1)">req.body不是nodejs默认提供的,需要载入中间件body-parser中间件才可以使用req.body</span> <br>例如前台代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> &lt;script&gt;
<span style="color: rgba(0, 128, 128, 1)"> 2</span>   $('.btn-save').click(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (e) {
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(0, 0, 0, 1)">      e.preventDefault();
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span>       <span style="color: rgba(0, 0, 255, 1)">var</span> fd = <span style="color: rgba(0, 0, 255, 1)">new</span> FormData($('form'));
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span>      
<span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(0, 0, 0, 1)">      $.ajax({
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span>         type: 'post'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>         url: '/updateHero'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(0, 0, 0, 1)">      data: fd,
</span><span style="color: rgba(0, 128, 128, 1)">10</span>         dataType: 'json'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">11</span>         success: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (res) {
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 0, 1)">          console.log(res);
</span><span style="color: rgba(0, 128, 128, 1)">13</span>         
<span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 0, 0, 1)">          alert(res.message);
</span><span style="color: rgba(0, 128, 128, 1)">15</span>         <span style="color: rgba(0, 0, 255, 1)">if</span> (res.code == 200<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">16</span>             location.href = './index.html'
<span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(0, 0, 0, 1)">          }
</span><span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(0, 0, 0, 1)">      },
</span><span style="color: rgba(0, 128, 128, 1)">19</span>         processData: <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">20</span>         contentType: <span style="color: rgba(0, 0, 255, 1)">false</span>
<span style="color: rgba(0, 128, 128, 1)">21</span> <span style="color: rgba(0, 0, 0, 1)">      })
</span><span style="color: rgba(0, 128, 128, 1)">22</span> <span style="color: rgba(0, 0, 0, 1)">    })
</span><span style="color: rgba(0, 128, 128, 1)">23</span>   &lt;/script&gt;</pre>
</div>
<p>后台代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> app.post('/updateHero', upload.single('heroIcon'), <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (req, res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(req.body);</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(req.file);</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> return;</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span>   <span style="color: rgba(255, 0, 255, 1)"><strong>let id = req.body.id;
</strong></span><span style="color: rgba(0, 128, 128, 1)"> 6</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 如果id为空或者不是数字类型的时候,参数错误,给出提示</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span>   <span style="color: rgba(0, 0, 255, 1)">if</span> (!id ||<span style="color: rgba(0, 0, 0, 1)"> isNaN(id)) {
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>   res.send('参数错误'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span>   <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">11</span>   let sql = 'update heroes set ? where id = ?'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">12</span>   let values =<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="background-color: rgba(255, 255, 255, 1); color: rgba(255, 0, 255, 1)"><strong>    name: req.body.heroName,
</strong></span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(255, 0, 255, 1)">    nickname: req.body.heroNickName,
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(255, 0, 255, 1)">    skill: req.body.skillName,
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">17</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 如果图片没有改动req.file的值为undefined,所以需要单独判断</span>
<span style="color: rgba(0, 128, 128, 1)">18</span>   <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (req.file) {
</span><span style="color: rgba(0, 128, 128, 1)">19</span>   values.file =<span style="color: rgba(0, 0, 0, 1)"> req.file.path
</span><span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">21</span>   db(sql, , (err, result) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">22</span>   <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (err) {
</span><span style="color: rgba(0, 128, 128, 1)">23</span>       res.send({ code: 201, message: '修改失败'<span style="color: rgba(0, 0, 0, 1)"> });
</span><span style="color: rgba(0, 128, 128, 1)">24</span>   } <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">25</span>       res.send({ code: 200, message: '修改成功'<span style="color: rgba(0, 0, 0, 1)"> });
</span><span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)">28</span> })</pre>
</div>
<h2>2.2&nbsp;req.query</h2>
<p><span style="color: rgba(255, 0, 0, 1)">由nodejs默认提供,无需载入中间件,此方法多适用于GET请求</span>,解析<span style="color: rgba(255, 0, 0, 1)">GET请求中的参数</span> <br>包含在路由中每个查询字符串参数属性的对象,如果没有则为{} <br>举例前台代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> &lt;script&gt;
<span style="color: rgba(0, 128, 128, 1)"> 2</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 获取地址栏的id</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>   <span style="color: rgba(0, 0, 255, 1)">var</span> id =<span style="color: rgba(0, 0, 0, 1)"> location.search;
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 发送ajax请求到/getHeroById端口,获取信息</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span>   $.get(<span style="color: rgba(255, 0, 255, 1)">'/getHeroById' + id</span>, <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span>       $('#heroName'<span style="color: rgba(0, 0, 0, 1)">).val(res.name);
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span>       $('#heroNickName'<span style="color: rgba(0, 0, 0, 1)">).val(res.nickname);
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>       $('#skillName'<span style="color: rgba(0, 0, 0, 1)">).val(res.skill);
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span>       $('.preview').attr('src'<span style="color: rgba(0, 0, 0, 1)">, res.file);
</span><span style="color: rgba(0, 128, 128, 1)">10</span>       $('input'<span style="color: rgba(0, 0, 0, 1)">).val(res.id);
</span><span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(0, 0, 0, 1)">    })
</span><span style="color: rgba(0, 128, 128, 1)">12</span>   &lt;/script&gt;</pre>
</div>
<p>后台代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> app.get('/getHeroById', (req, res) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span>   <span style="color: rgba(255, 0, 255, 1)">let id = req.query.id;
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 如果id为空或者不是数字类型的时候,参数错误,给出提示</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span>   <span style="color: rgba(0, 0, 255, 1)">if</span> (!id ||<span style="color: rgba(0, 0, 0, 1)"> isNaN(id)) {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span>   res.send('参数错误'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span>   <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>   let sql = 'select * from heroes where id=?'
<span style="color: rgba(0, 128, 128, 1)"> 9</span>   db(sql, id, (err, result) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">10</span>   <span style="color: rgba(0, 0, 255, 1)">if</span> (err) <span style="color: rgba(0, 0, 255, 1)">throw</span><span style="color: rgba(0, 0, 0, 1)"> err;
</span><span style="color: rgba(0, 128, 128, 1)">11</span>   res.send(result);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">result的值是一个数组</span>
<span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)">13</span> })</pre>
</div>
<h2>2.3 req.params</h2>
<p><span style="color: rgba(255, 0, 0, 1)">nodejs默认提供,无需载入其他中间件</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">req.params包含路由参数(在URL的路径部分),而req.query包含URL的查询参数(在URL的?后的参数)。</span></p>
<p>例如,如果你有route/user/:name,那么“name”属性可作为req.params.name。</p>
<p>post和get方式提交的表单的参数的获取,都可用req.params获取,但是需要注意的是:<br>假设现在我们以Post方式提交表单到 /user/signup?123userid=222,在后台我们要获取到userid这个参数</p>
<p>这时如果我们通过req.params.userid获取到的并不是post表单提交上来的参数,因为req.params包含路由参数(在URL的路径部分),所以它在解析参数的时候包含URL中的路由,它获取的顺序是:<br>1.url中路由参数<br>2.post请求中提交参数<br>3.get请求中的参数<br>这里获取到的是123,</p>
<p>如果提交的路径为:/user/signup?userid=222<br>req.params.userid获取到的就是post提交的参数</p>
<h1>3、示例</h1>
<h2>3.1&nbsp;获取get请求的参数值(req.query)</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> router.get('/query', <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (req, res,next) {
</span><span style="color: rgba(0, 128, 128, 1)">2</span>   console.log('get请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.query);
</span><span style="color: rgba(0, 128, 128, 1)">3</span>   console.log('post请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.body);
</span><span style="color: rgba(0, 128, 128, 1)">4</span> });</pre>
</div>
<p>访问http:/127.0.0.1:4000/query?username=123&amp;pwd=456</p>
<p><img src="https://img2018.cnblogs.com/blog/1747943/201908/1747943-20190808214055656-593202098.png"></p>
<h2>3.2&nbsp;获取post请求的参数值(req.body)</h2>
<p>html代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">body</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">2</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">form </span><span style="color: rgba(255, 0, 0, 1)">action</span><span style="color: rgba(0, 0, 255, 1)">="/body"</span><span style="color: rgba(255, 0, 0, 1)"> method</span><span style="color: rgba(0, 0, 255, 1)">="post"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">3</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">input </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="text"</span><span style="color: rgba(255, 0, 0, 1)"> name</span><span style="color: rgba(0, 0, 255, 1)">="username"</span><span style="color: rgba(255, 0, 0, 1)"> value</span><span style="color: rgba(0, 0, 255, 1)">="123"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">4</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">input </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="password"</span><span style="color: rgba(255, 0, 0, 1)"> name</span><span style="color: rgba(0, 0, 255, 1)">="pwd"</span><span style="color: rgba(255, 0, 0, 1)"> value</span><span style="color: rgba(0, 0, 255, 1)">="123"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">5</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">input </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="submit"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">6</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">form</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">7</span> <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">body</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<p>js代码:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> app.post('/body', <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (req, res, next) {
</span><span style="color: rgba(0, 128, 128, 1)">2</span>   console.log('get请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.query);
</span><span style="color: rgba(0, 128, 128, 1)">3</span>   console.log('post请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.body);
</span><span style="color: rgba(0, 128, 128, 1)">4</span> });</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1747943/201908/1747943-20190808215223462-1168974900.png"></p>
<h2>3.3&nbsp;获取url路径(req.params)</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> app.get('/test/:urlname', <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (req, res,next) {
</span><span style="color: rgba(0, 128, 128, 1)">2</span>   console.log('url参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.params);
</span><span style="color: rgba(0, 128, 128, 1)">3</span>   console.log('get请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.query);
</span><span style="color: rgba(0, 128, 128, 1)">4</span>   console.log('post请求参数 :'<span style="color: rgba(0, 0, 0, 1)">,req.body);
</span><span style="color: rgba(0, 128, 128, 1)">5</span> });</pre>
</div>
<p>访问:http://127.0.0.1:4000/test/1234</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1747943/201908/1747943-20190809092136657-2109011773.png"></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/Diamond-sjh/p/11324138.html
頁: [1]
查看完整版本: node js中的req.body,req.query,req.params取参数