express는 'body-parser deprecommended extended'로 오류를 발생시킵니다.
내 노드 앱에서 나는 익스프레스를 사용하고 있습니다.모든 것이 잘 작동합니다. 하지만 오류가 발생하고 있습니다.cmd
업데이트된 모듈을 모두 사용합니다...
내 코드:
var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies
app.get('/',function(req,res){
res.render('index.jade');
});
app.get('/login',function(req,res){
res.render('index.jade');
});
app.post('/login',function(req,res){
console.log(req.body);
});
app.get('/signup',function(req,res){
res.render('signup.jade');
});
var env = process.env.PORT || 3000;
app.listen(env, function(req, res){
console.log('i am working!');
});
오류:
D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: 'jbarif@gmail.com', password: 'pass' } // i am getting response
제가 이 문제를 이해하는 것을 도와주실 수 있나요?
명시적으로 설정해야 합니다.extended
위해서bodyParser.urlencoded()
의 다음 주요 버전에서 기본값이 변경될 것이기 때문입니다.body-parser
예:
app.use(bodyParser.urlencoded({ extended: true }));
부터express
4.16.0에서는 다음 작업도 수행할 수 있습니다.
app.use(express.urlencoded({ extended: true }))
주의:와 함께express version => 4.16.0
그body-parser
미들웨어는 다시 메소드 아래에 추가되었습니다.
다음과 같은 용도로 사용할 수 있습니다.
app.use(express.urlencoded({extended: true}));
app.use(express.json());
오류는 다음과 같이 본문 파서에 대한 확장 옵션을 제공해야 한다고 말합니다.
app.use(bodyParser.urlencoded({ extended: false }))
바디 파서 사용 안 함
이제 새로운 버전의 Express에 내장되어 있으므로 express를 사용해야만 다음과 같은 요청 본문에 액세스할 수 있습니다.
app.use(express.urlencoded({extended: true}));
app.use(express.json()) // To parse the incoming requests with JSON payloads
따라서 이제 다음을 사용하여 본문 파서를 제거할 수 있습니다.npm uninstall body-parser
POST 콘텐츠를 가져오려면 다음을 사용할 수 있습니다.req.body
app.post("/yourpath", (req, res)=>{
var postData = req.body;
//Or if this doesn't work
var postData = JSON.parse(req.body);
});
만약 당신이 마주한다면'bodyParser' is deprecated.
그냥 해요
app.use(express.urlencoded({extended: true}));
app.use(express.json());
참고: 사용 중인 경우4.16.0
또는 이후의 익스프레스 버전.
Express 버전 4.16.0부터는 bodyParser.urlencoded() 내부의 확장 속성을 전달해야 합니다.
// parse JSON-encoded bodies and URL-encoded bodies
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
샘플은 npm.js 설명서 페이지를 참조하십시오. https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
노드 v16.xx.x 및 "express": "^4.17.x" 이상을 사용하는 경우 bodyPerser를 다시 사용할 필요가 없습니다.이제 기본적으로 익스프레스와 통합됩니다.아래에서 다음을 수행합니다.
// parse JSON-encoded bodies and URL-encoded bodies
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
노드 버전 v13.12.0을 사용하는 경우:
app.use(express.urlencoded({ extended: true }))
지금은 "바디 파서"를 명시적으로 설치할 필요가 없습니다.이것은 효과가 있을 것입니다.
app.use(express.json());
노드 v16.xx.x 및 "express": "^4.17.x"를 사용하는 경우 bodyPerser를 다시 사용할 필요가 없습니다.이제 기본적으로 익스프레스와 연동됩니다.아래에서 다음을 수행합니다.
// parse JSON-encoded bodies and URL-encoded bodies
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
만약 당신이 2020년부터 크리스마스 이후에 여기에 있다면, 당신은 당신의 급행 신고 전과 경로 신고 후에 미드로아레스를 순서대로 배치하기만 하면 됩니다. 여기에 이미지 설명을 입력하세요.
당신은 더 이상 '바디 파서'를 사용할 필요가 없습니다.
새 버전의 express.js에서는 이 구문 분석 옵션을 사용할 수 있습니다.
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
데이터 처리 오류를 방지하기 위해 제한 50MB를 설정합니다. URL에서 제한 50MB는 이미지를 전달하는 데 도움이 됩니다. 데이터 쓰기 URL
app.use(bodyParser.json({
limit : '50mb' ///////// LIMIT for JSON
}));
app.use(bodyParser.urlencoded({
limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
extended : true
}));
언급URL : https://stackoverflow.com/questions/25471856/express-throws-error-as-body-parser-deprecated-undefined-extended
'programing' 카테고리의 다른 글
CoffeeScript - JQuery가 켜진 상태에서 동적으로 로드된 개체에 대한 클릭 이벤트 바인딩 (0) | 2023.08.26 |
---|---|
CSS에서 '@' 기호의 목적은 무엇입니까? (0) | 2023.08.26 |
Set-Content가 내 파일 끝에 새 줄(줄 바꿈, CRLF)을 추가합니다. (0) | 2023.08.26 |
하위 폴더로 폴더를 복사하는 방법은 무엇입니까? (0) | 2023.08.26 |
Python을 사용하여 미니돔으로 요소 값 가져오기 (0) | 2023.08.26 |