Les paramètres de la requête dans l'Express
Je suis en train d'essayer d'obtenir l'accès aux paramètres de la requête à l'aide de l'Exprimer en Node.js. Pour une raison quelconque, req.params
revient sans cesse comme un objet vide. Voici mon code dans server.js
:
const express = require('express');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
const https = require('https');
//custom packages ..
//const config = require('./config');
const routes = require('./routes/routes');
const port = process.env.port || 3000;
var app = express();
//templating engine Handlebars
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
//connect public route
app.use(express.static(__dirname + '/public/'));
app.use(bodyParser.json());
//connect routes
app.use('/', routes);
app.listen(port, () => {
console.log( 'Server is up and running on ' + port );
});
Et voici mon fichier de routes:
//updated
const routes = require('express').Router();
routes.get('/', (req, res) => {
res.render('home');
});
routes.post('/scan', (req, res) => {
res.status(200);
res.send("hello");
});
routes.get('/scanned', (req, res) => {
const orderID = req.params;
console.log( req );
res.render('home', {
orderID
});
});
module.exports = routes;
Lorsque le serveur est en cours d'exécution, je suis de la navigation à http://localhost:3000/scanned?orderid=234
. Le journal de la console que j'ai actuellement dans la routes.js
fichier est en montrant un corps est vide (ne pas reconnaître orderid
paramètre dans l'URL).
OriginalL'auteur Jim M | 2017-04-22
Vous devez vous connecter pour publier un commentaire.
orderid
dans la requête est une requête de paramètre. Il doit être accessible viareq.query
objet n'est pas avecreq.params
. L'utilisation de code ci-dessous pour accéder àorderid
transmis dans la demande:Maintenant, vous devriez être en mesure d'obtenir
234
valeur passée dans l'url de la requête.Ou essayez de remplacer le code de la route
/scanned
avec ci-dessous:OriginalL'auteur Abhishek
La raison que
req.body
revient sans cesse comme un objet vide, c'est que dansget
demandes, telles que celles faites par le navigateur sur la navigation, il n'y a pas de corps de l'objet. Dans unget
demande, la chaîne de requête contient le n ° de commande que vous tentez d'accéder. La chaîne de requête est ajouté à l'url. Votre code peut être réécrit de la manière ci-dessous:Une note, cependant, est que si vous avez AJAX postes de tir au sein de votre code côté client, votre
req.body
ne sera pas vide, et vous pouvez l'analyser comme vous le feriez normalement.OriginalL'auteur Rafael Kennedy