在Express

时间:2019-04-02 20:20:31

标签: javascript node.js express

在NodeJS上遵循此课程: https://app.pluralsight.com/player?course=api-design-nodejs-express-mongo&author=scott-moss&name=91bae158-711d-4af0-a44d-7f48435436b9&clip=3&mode=live

https://github.com/leongaban/api-design-node/blob/step-2-fix/server/server.js

我有以下简单的服务器:

const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const path = require('path')
const port = 3000

app.use(express.static('client'))
app.use(bodyParser.urlencoded({ extended: true }))

const lions = []
let id = 0

app.get('/lions', function(req, res) {
  res.json(lions)
})

app.get('/lions:id', function(req, res) {
  let paramId = req.param.id
  let lion = lions.filter((lion.id === paramId))
  res.json(lion || {})
})

app.post('/lions', function(req, res) {
  let lion = req.body
  id++
  lion.id = id + ''

  console.log('lion', lion)

  lions.push(lion)

  res.json(lion)
});

app.listen(port, () => console.log(`NODE RUNNING on port: ${port}`))

在前端客户端代码中,我可以发送以下请求数据:

enter image description here

age: "3"
gender: "female"
name: "1"
pride: "2"

但是在服务器中,我的日志console.log('lion', lion)仅返回以下内容:lion { id: '1' } req.body为空。

然后在前端控制台中出现此错误:

  

VM1567:3未捕获(承诺)ReferenceError:未定义骄傲

关于应该在哪里骄傲的想法?以及为什么req.body在服务器上为空?

1 个答案:

答案 0 :(得分:0)

我忘记使用此中间件:

app.use(bodyParser.json())