如何将客户端参数传递给Angular / Node.js / Express中的服务器端 [英] How to pass client-side parameters to the server-side in Angular/Node.js/Express
问题描述
可能是一个非常基本的问题,但我似乎找不到一个简单的答案。
Probably a very basic question, but I cannot seem to find a simple answer.
我有一个使用Angular的 $ http
的GET方法,该请求来自特定的url( URL_OF_INTEREST
)。
I have a GET method leveraging Angular's $http
that is requesting a promise from a particular url (URL_OF_INTEREST
).
在此服务器上,我运行一个快捷脚本 server.js
脚本,可以处理GET请求。
On this server, I run an express script server.js
script that can handle GET requests.
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);
我可以使用Angular GET方法与URL_OF_INTEREST进行通信,如下所示:
I can communicate with the URL_OF_INTEREST using an Angular GET method as follows:
$http.get('URL_OF_INTEREST')
.success(
function(success){
console.log(success)
})
.error(
function(error){
console.log(error)
});
然而,字段金额,货币,来源和描述需要从Angular客户端理想地传递
However, the fields amount, currency, source and description need to be ideally passed on from the Angular client side application.
如何实现这一点,我的快速应用程序如何读取这些数据?
How can this be achieved and how can my express application read this data?
推荐答案
您需要在get call中传递数据:
You need to pass the data in your get call as folow:
var data = {
amount: 3,
currency: 2,
source: 3,
description: 4
};
$http.get('URL_OF_INTEREST', data) // PASS THE DATA AS THE SECOND PARAMETER
.success(
function(success){
console.log(success)
})
.error(
function(error){
console.log(error)
});
在您的后端,您可以将url参数作为folow:
And in your backend, you can get your url parameters as folow:
router.get('/', function(req, res, next) {
var amount = req.query.amount; // GET THE AMOUNT FROM THE GET REQUEST
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);
}
});
});
这篇关于如何将客户端参数传递给Angular / Node.js / Express中的服务器端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!