Comment passer à côté client les paramètres pour le serveur-côté Angulaire/Nœud.js/Express
Probablement une question très simple, mais je n'arrive pas à trouver une réponse simple.
J'ai une méthode GET levier Angulaire du $http
qui demande une promesse à partir d'une url particulière (URL_OF_INTEREST
).
Sur ce serveur, je lance un express script server.js
script qui peut gérer les demandes GET.
server.js
var express = require('express'); //call express
var app = express(); //define our app using express
var bodyParser = require('body-parser');
var stripe = require("stripe")("CUSTOM_TEST_TOKEN");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
var router = express.Router(); //get an instance of the express Router
router.get('/', function(req, res, next) {
var stripeToken = "CUSTOM_PAYMENT_TOKEN";
var charge = stripe.charges.create({
amount: 1100, //amount in cents, again
currency: "usd",
source: stripeToken,
description: "Example charge"
}, function(err, charge) {
if (err && err.type === 'StripeCardError') {
res.json(err);
} else {
res.json(charge);
}
});
});
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
})
app.use('/api', router); //register our route
app.listen(port); //start our server
console.log('Magic happens on port ' + port);
Je peux communiquer avec les URL_OF_INTEREST à l'aide d'un Angulaire de la méthode GET comme suit:
$http.get('URL_OF_INTEREST')
.success(
function(success){
console.log(success)
})
.error(
function(error){
console.log(error)
});
Cependant, les champs montant, la devise, la source et la description doivent être idéalement transmis de l'Angulaire de l'application côté client.
Comment cela peut-il être réalisé et comment faire pour que ma demande expresse de lire ces données?
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de transmettre les données dans votre obtenir de l'appel comme d'folow:
Et dans votre backend, vous pouvez obtenir vos paramètres d'url comme suivre:
HTTP OBTENIR méthode
Client:
Serveur:
HTTP POST méthode
Client:
Serveur:
Réponse vs Bonne Solution
HTTP POST est préféré lors de l'envoi des données au serveur.
Méthode HTTP GET moyen de l'interrogation des données, ne pas envoyer de données. À cause de cela, une requête HTTP avec OBTENIR méthode aura toujours de la demande.corps vide. Mais encore, les données peuvent être envoyées vers le serveur via les OBTENIR à l'aide de la chaîne de requête. Dans votre cas:
Client
Serveur
Heureux D'Aider!
req.query
au lieu dereq.body
oureq.params
. Après avoir cherché si longtemps, on en est finalement résolu mon problème! Merci!!!!Vous pouvez créer un objet JS avec vos paramètres, puis l'utilisation de jQuery
$.param
(http://api.jquery.com/jquery.param/) pour sérialiser dans une chaîne de requête URL:Et sur votre
$http
appel:MODIFIER: OU si vous ne souhaitez pas utiliser jQuery:
Sur le côté serveur, il suffit d'utiliser la
req
objet pour obtenir les paramètres: