Domanda

Ho un server Nodejs in esecuzione su Express.Sto usando Mongoskin per connettere il mio server Web a MongoDB.Ho il seguente percorso:

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; 
.

Quanto sopra crea un endpoint che accetterà le richieste di post su http://domain.com/add.In questo momento, questo endpoint salverà qualsiasi parametro incluso con una richiesta AJAX.Non ho alcun controllo per limitare quali coppie chiave / valore che voglio salvare nel mio db.

Con PHP, dovresti cercare esplicitamente i parametri nello script per utilizzarli, ovvero:

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

Come farei questo con Nodejs?

È stato utile?

Soluzione

req.body è solo un normale oggetto JS, quindi dovrebbe essere esattamente lo stesso di PHP.Supponiamo che la tua richiesta postale abbia i seguenti valori: param1=1,param2=2,param3=invalid.Quindi req.body avrà il seguente modulo:

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

Quindi devi solo creare un nuovo oggetto con i valori che desideri:

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);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top