nodeJS将变量传递给变量

时间:2018-09-26 08:33:17

标签: node.js variables

基于广泛的搜索,曾以为反引号可以解决问题,但没有骰子。措手不及为什么代码变量不会传递到另一个变量。使用了反引号,$ {variable},没有骰子。想法?

exports.stripeConnect = functions.https.onRequest((req, res) => {
    var code = req.query.code;
    const ref = admin.database().ref(`/stripe_advisors/testing`);
    return ref.update({ code: code });

    var request = require('request');

    var dataString = `client_secret=sk_test_8gxfc3KHDoPC4pyFvitYcwf1&code=${code}&grant_type=authorization_code`;

    var options = {
            url: 'https://connect.stripe.com/oauth/token',
            method: 'POST',
            body: dataString
    };

    function callback(error, response, body) {
            if (!error && response.statusCode == 200) {
            console.log(body);
            }
    }

    request(options, callback);
});

2 个答案:

答案 0 :(得分:0)

我认为您只需要在变量'dataString'中串联的变量'code'的值,就可以使用串联运算符(+)。就您而言:

dataString='client_secret=sk_test_8gxfc3KHDoPC4pyFvitYcwf1&code='**+code+**'&grant_type=authorization_code';

我根据您所写的内容编写了一个测试代码:

var code = 'Hello';
var dataString = \`${code}, World\`;

console.log(dataString);

输出为:Hello,World

因此,在上面的代码中,dataString应该在代码变量中具有值,只需打印变量并进行测试即可。

您无法在主体中传递查询字符串,请检查您在主体中传递的内容是否正确。

答案 1 :(得分:0)

在另一个问题中感谢另一个发贴人,得知字符串不是问题@ all,而是JS异步性质。以下是使用Firebase功能执行Stripe Connect入职过程的工作代码。享受吧!

var rp = require('request-promise');

//Stripe Connect
exports.stripeConnect = functions.https.onRequest((req, res) => {
var code = req.query.code;
const ref = admin.database().ref('/stripe_advisors/testing');
var dataString = `client_secret=sk_test_8gxfc3KHDoPC4pyFvitYcwf1&code=${code}&grant_type=authorization_code`;
var options = {
        url: 'https://connect.stripe.com/oauth/token',
        method: 'POST',
        body: dataString
};

rp(options)
.then(parsedBody => {
    return ref.update({ code: code });
})
.catch(err => {
    console.log(err);
    res.status(500).send(err);
});

});