node.js - express無(wú)法獲取req.params值?
問(wèn)題描述
var express = require(’express’);var bodyParser = require(’body-parser’)var port = process.env.PORT || 3000var app = express()var path = require(’path’);var mongoose = require(’mongoose’)var _ = require(’underscore’)var fs = require(’fs’);var jsonParser = bodyParser.json()var urlencodedParser = bodyParser.urlencoded({ extended: false })mongoose.connect(’mongodb://localhost/meetdb’)app.set(’views’, ’./views/pages’)app.set(’view engine’, ’jade’)app.use(urlencodedParser);app.use(express.static(path.join(__dirname, ’public’)))app.listen(port)// user 相關(guān)app.post(’/user/signup’,function (req,res){ console.log(req.params) console.log(req.body)})
可以獲取到req.body,但是無(wú)法獲取到req.params。我看網(wǎng)上說(shuō)的是可以同時(shí)獲取query和body的值。
問(wèn)題解答
回答1:通常是req.params吧,來(lái)獲取路徑中的參數(shù)
回答2:據(jù)我了解,req.params 只有在參數(shù)化的路徑中的參數(shù)。你想取的是查詢字符串中的參數(shù)嗎?
查詢字符串中的參數(shù)要用 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=2Content-Type: application/x-www-form-urlencodedaaa=1&bbb=2
這樣的請(qǐng)求,應(yīng)該是要用 req.query.foo 和 req.query.bar 來(lái)獲取 foo 和 bar 的值,最終打印出如下:
req.params: { id: ’123’ }req.query: { foo: ’1’, bar: ’2’ }req.body: { aaa: ’1’, bbb: ’2’ }
話說(shuō)這種問(wèn)題 console.log 的效率太慢,為啥不用斷點(diǎn):
看看用VSCode打斷點(diǎn)查看變量爽爆了。
回答3:/user/signup 這里 /user/signup/:aaa 你才有params
相關(guān)文章:
1. sql語(yǔ)句 - mysql中關(guān)聯(lián)表查詢問(wèn)題2. css - chrome下a標(biāo)簽嵌套img 顯示會(huì)多個(gè)小箭頭?3. javascript - 求解答:實(shí)例對(duì)象調(diào)用constructor,此時(shí)constructor內(nèi)的this的指向?4. javascript - iframe 為什么加載網(wǎng)頁(yè)的時(shí)候滾動(dòng)條這樣顯示?5. javascript - 如何將一個(gè)div始終固定在某個(gè)位置;無(wú)論屏幕和分辨率怎么變化;div位置始終不變6. javascript - vscode alt+shift+f 格式化js代碼,通不過(guò)eslint的代碼風(fēng)格檢查怎么辦。。。7. javascript - 有什么比較好的網(wǎng)頁(yè)版shell前端組件?8. html - vue項(xiàng)目中用到了elementUI問(wèn)題9. mysql updtae追加數(shù)據(jù)sql語(yǔ)句10. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?
