NodeJS / Express / MongoDB - POST 요청에서 수락 된 매개 변수를 어떻게 제한합니까?

StackOverflow https://stackoverflow.com//questions/25082957

  •  02-01-2020
  •  | 
  •  

문제

Express에서 NodeJS 서버가 실행됩니다.저는 Mongoskin을 사용하여 웹 서버를 MongoDB에 연결하고 있습니다.나는 다음과 같은 경로를 가지고있다 :

var express = require('express');
var router = express.Router();

router.post('/add', function(req, res){
    var db = req.db;
    db.collection('products').insert(req.body, function(err){
        res.send(err);
    });
});

module.exports = router; 
.

위의 것은 http://domain.com/add에서 POST 요청을 받아 들일 엔드 포인트를 만듭니다.지금 당장이 엔드 포인트는 AJAX 요청에 포함 된 매개 변수를 저장합니다.내 DB에서 저장하려는 키 / 값 쌍을 제한 할 수있는 컨트롤이 없습니다.

PHP를 사용하면 스크립트의 매개 변수를 명시 적으로 찾아야합니다. 즉 :

$param1 = $.POST['param1'];
$param2 = $.POST['param2'];
$param3 = $.POST['param3'];  
// Do something with these values
.

노드 js로 어떻게해야합니까?

도움이 되었습니까?

해결책

req.body는 일반 JS 오브젝트 일뿐 만 아니라 PHP와 정확히 동일해야합니다.POST 요청에 다음 값이 있다고 가정하십시오. param1=1,param2=2,param3=invalid.그런 다음 req.body에는 다음과 같은 양식이 있습니다.

{
    param1: 1,
    param2: 2,
    param3: "invalid"    
}
.

로 원하는 값을 가진 새 객체를 만드는 것 :

var allowed_params = {
    param1: req.body.param1, // Or if you prefer req.body["param1"]
    param2: req.body.param2
};
db.collection('products').insert(allowed_params, callback_func);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top