NodeJS / Express / MongoDB - POST 요청에서 수락 된 매개 변수를 어떻게 제한합니까?
문제
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);
. 제휴하지 않습니다 StackOverflow