在使用Express進(jìn)行Web開發(fā)時(shí),常常需要從客戶端獲取JSON格式的數(shù)據(jù)。這時(shí)候就可以使用Express的req.json屬性來獲取請(qǐng)求中包含的JSON數(shù)據(jù)。
在Express中,通過req屬性可以獲取請(qǐng)求對(duì)象。而req中的json方法可以解析請(qǐng)求體中的JSON數(shù)據(jù),并返回一個(gè)JavaScript對(duì)象。請(qǐng)求中的JSON數(shù)據(jù)可以是一個(gè)對(duì)象,也可以是一個(gè)數(shù)組。
// 示例代碼 app.post('/api/user', (req, res) =>{ const user = req.json; console.log(user); });
在上面的代碼中,我們定義了一個(gè)POST請(qǐng)求的路由。當(dāng)有客戶端向該路由發(fā)起請(qǐng)求時(shí),我們可以通過req.json來獲取請(qǐng)求中的JSON數(shù)據(jù),然后將其打印輸出。
需要注意的是,使用req.json的前提是需要在Express的中間件中解析請(qǐng)求體,否則req.json會(huì)返回undefined。通常我們會(huì)使用body-parser中間件來解析請(qǐng)求體中的JSON數(shù)據(jù)。
// 使用body-parser中間件解析JSON格式的請(qǐng)求體 const bodyParser = require('body-parser'); app.use(bodyParser.json());
在以上代碼中,我們使用了body-parser中間件,并指定解析JSON格式的請(qǐng)求體。這樣,在我們的路由處理函數(shù)中就可以愉快地使用req.json來獲取請(qǐng)求中的JSON數(shù)據(jù)啦!