J'utilise Mongoose pour créer une API REST en utilisant NodeJs et je rencontre des problèmes avec les paramètres de req.Les paramètres de requête ne contiennent pas les bonnes valeurs
Le code J'utilise (modèle) est la suivante:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var RequestSchema = new Schema({
query: {
type: String,
default: ''
},
number: {
type: String,
default: ''
},
subject: {
type: String,
default: ''
}
});
module.exports = mongoose.model('Cel', RequestSchema)
Cependant, lorsque j'utilise le code suivant de mon contrôleur (answerQuery est utilisé pour une requête POST) et imprimer les valeurs I trouver des valeurs inattendues:
exports.answerQuery = function(req, res) {
console.log('query is : ' + req.params.query); // this is undefined
console.log('query is : ' + req.body.query); // this is the value of query
console.log('query is: ' + req.params.number); // this is the value of number
console.log('subject is : ' + req.params.subject); // this is undefined
};
Je comprends pourquoi req.body.query
œuvres, mais je suis confus quant à pourquoi req.params.query
et req.params.subject
ne fonctionnent pas (retour non défini), mais req.params.number
ne. Je n'ai pas beaucoup utilisé Javascript et je pense que je pourrais manquer quelque chose ici.
Modifier 0: J'utilise une requête POST pour cette
Edit 1: Ceci est mon fichier d'itinéraire:
'use strict';
module.exports = function(app) {
var celRequest = require('../controllers/celSearchController');
// Routes
app.route('/celsearch/:number')
.post(celRequest.answerQuery);
};
Y a-t-il une URL associée à votre itinéraire answerQuery? Si oui, pouvez-vous inclure cela? – heyitsjhu
Si answerQuery est votre requête POST, vos données ne seront pas demandées dans req.query. req.query ou req.params est utilisé pour la requête GET –
Pouvez-vous afficher l'URL de la requête POST ainsi que les paramètres et leurs valeurs? –