Node.js Express项目出现body-parser弃用警告求助
解决Express中body-parser弃用警告问题
错误原因
你遇到的body-parser deprecated undefined extended: provide extended option警告,是因为调用express.urlencoded()时未传入必填的extended配置项。Express内置的body-parser中间件现在要求显式指定该选项,不再支持默认值。
解决方案
将代码中的:
app.use(express.urlencoded())
替换为以下两种写法之一:
写法1:使用extended: true
app.use(express.urlencoded({ extended: true }))
- 允许解析嵌套的URL编码数据(如数组、嵌套对象),底层依赖
qs库处理复杂数据结构。
写法2:使用extended: false
app.use(express.urlencoded({ extended: false }))
- 仅解析平铺的键值对格式数据,使用Node.js内置的
querystring库处理,适合简单表单场景。
修改后的完整代码
const express = require('express') const app = express() app.use(express.json()) app.use(express.urlencoded({ extended: true })) // 已添加extended配置 const port = 3000 // Endpoint to serve the HTML app.get('/', (req, res) => { res.sendFile("pages/index.html", {root: __dirname}) }) app.get('/login', (req, res) => { res.sendFile("pages/login.html", {root: __dirname}) }) app.get('/signup', (req, res) => { res.sendFile("pages/signup.html", {root: __dirname}) }) // Endpoint for APIs app.post('/getnotes', (req, res) => { const {userToken } = req.body res.sendFile("pages/signup.html", {root: __dirname}) }) app.post('/login', (req, res) => { const {userToken } = req.body res.sendFile("pages/signup.html", {root: __dirname}) }) app.post('/signup', (req, res) => { const {userToken } = req.body res.sendFile("pages/signup.html", {root: __dirname}) }) app.post('/addnote', (req, res) => { const {userToken } = req.body res.sendFile("pages/signup.html", {root: __dirname}) }) app.post('/deletenote', (req, res) => { const {userToken } = req.body res.sendFile("pages/signup.html", {root: __dirname}) }) app.listen(port, () => { console.log(`Example app listening on port http://localhost:${port}`) })
内容的提问来源于stack exchange,提问作者Shashank Pandey
相关产品推荐
相关产品推荐

