我被困了两天,我尝试了所有的解决方案,但是当我在nodejs中使用PUT和PATCH运行方法时,仍然得到了undefined或{}对象
Postman screen shot is here
index.js
[const express = require("express")
const cors = require("cors")
const bodyParser = require("body-parser")
require("./db/db.config")
const app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
const PORT = 8000
const Customer = require("./routes/customerRoutes")
app.use(cors())
app.use(Customer)
app.listen(PORT, () => {
console.log("Server is running on", PORT)
})][1]
package.json
"dependencies": {
"body-parser": "^1.20.1",
"cors": "^2.8.5",
"express": "^4.18.2",
"moment": "^2.29.4",
"mongoose": "^6.9.2",
"multer": "*",
"validator": "^13.9.0"
},
1条答案
按热度按时间a14dhokn1#
您的Postman请求被设置为
form-data
,这意味着内容类型为multipart/form-data
,并且您没有任何Express中间件来读取/解析该内容类型。将postman更改为
x-www-form-urlencoded
或json
以匹配您现有的中间件,否则您将不得不安装可以处理multipart/form-data
的中间件。通常,除非您将文件数据与表单数据沿着上传,否则您不会使用multipart/form-data
,因为这就是使用multi-part(多个部分上传)的原因。在Postman示例中,您显示了
x-www-form-urlencoded
的屏幕截图,内容类型x-www-form-urlencoded
应该可以正常工作,您的app.use(bodyParser.urlencoded({ extended: true }))
中间件将处理它,这就是标准HTML表单上载的典型情况。