如何将客户端参数传递给Angular / Node.js / Express中的服务器端 [英] How to pass client-side parameters to the server-side in Angular/Node.js/Express

查看:161
本文介绍了如何将客户端参数传递给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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆