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

查看:30
本文介绍了如何在 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).

在这台服务器上,我运行了一个可以处理 GET 请求的快速脚本 server.js 脚本.

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.

这是如何实现的,我的 express 应用程序如何读取这些数据?

How can this be achieved and how can my express application read this data?

推荐答案

您需要在 get 调用中传递数据,如下所示:

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)
        });

在您的后端,您可以获取如下网址参数:

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天全站免登陆