2014-07-17 5 views
30

게시 된 양식 데이터를 신속하게 가져 오기 위해 권장되는 (최신) 방법을 알려줄 수 있습니까?Express js 양식 데이터

bodyParser에 대한 많은 자습서/게시물 등이 있지만 더 이상 Express 및 기타 블로그와 번들로 제공되지 않습니다. urlencoded를 직접 사용하는 것이 좋지만 지금은 사용할 수 없습니다. 이러한 프레임 워크 또는 기술에 대한 정확한 정보를 찾으려고

는 내 머리를하고있다.

은 BTW 내가 무엇에 intrerested하고하는 것은 매우 간단하고 소형 폼 데이터

+3

이을 downvoted하지 않아야을 다음과 같이 '는 표현-강력한'를 다음 명령에 의해 NPM은

특급 - 무서운 간단한 예는 설치합니다. 단일 POST 매개 변수를 읽는 방법에 대한 간단한 문서는 없습니다. 허용 된 솔루션은 더 이상 사용되지 않는 패키지를 사용합니다. – Jeremy

+3

Jeremy 나는 받아 들인 해결책이 더 이상 사용되지 않는 패키지가 아니라고 생각한다. Mritunjay가 언급하는 패키지에는 이름에 하이픈이 있으며 취약한 "bodyparser"미들웨어와 다릅니다. 나는 그것이 원래의 "bodyparser"에 대해 경고하는 블로그 게시물 중 일부에서 언급되었다고 생각한다. 이유는 내가 솔루션의 연령대를 검색했기 때문에 downvoted (즉, 연구 노력을 보이지 않아야 함)에 동의하지만, 문제는 거기에 너무 오래되고 혼란스러운 정보가 내 머리 속에 들어 있다는 것이 었습니다. –

+0

설명해 주셔서 감사합니다. body-parser와 bodyParser 패키지 사이에 차이점이 있다는 것을 깨닫지 못했습니다. 이 미묘한 점이이 질문이 적절한 이유의 일부입니다. Express 4에서 – Jeremy

답변

35

당신이 npm-install을 통해 body-parser을 설치해야합니다. 이제 별도의 미들웨어로 제공됩니다. 당신의 app.js에서 그 추가 다음 행 후

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 
// in latest body-parser use like below. 
app.use(bodyParser.urlencoded({ extended: true })); 

그것은 objectpost 요청을 구문 분석합니다. 변수는 req.body에 있습니다.

post 요청 처리기에 있습니다.

app.post('/post',function(request,response){ 
    console.log(request.body) //you will get your data in this as object. 
}) 
+9

을 사용하려면 다음을 사용하십시오. app.use (bodyParser.urlencoded ({extended : true})); – Jeff

5

README가 body-parser입니다.

This does not handle multipart bodies, due to their complex and typically large nature.

위는 x-www-form-urlencoded를하고 JSON 작업을하려고하지만, 어떤 멀티 작동하지 않습니다. form-data는 또한 "multipart/form-data"헤더와 함께 multipart입니다. https://github.com/noraesae/express-formidable

3

당신은 그에게특급 - 무서운 모듈을 사용할 수있다 :

양식 데이터의 경우, 가장 좋은 솔루션이 lib 디렉토리를 사용하는 것입니다.

const express = require('express'); 
const formidable = require('express-formidable'); 

var app = express(); 

app.use(formidable()); 

app.post('/upload', (req, res) => { 
    //req.fields contains non-file fields 
    //req.files contains files 
    res.send(JSON.stringify(req.fields)); 
}); 

Click here for further description