解析开源服务器云代码的工作方式与旧的不同

Posted

技术标签:

【中文标题】解析开源服务器云代码的工作方式与旧的不同【英文标题】:Parse open source server cloud code not working the same as old 【发布时间】:2016-03-30 03:23:28 【问题描述】:

我从使用旧的解析云代码转到 AWS 上的开源解析服务器,main.js 的这一部分不起作用。

    var Stripe = require('stripe');
    Stripe.initialize('sk_live_mylivekey');

    var Mailgun = require('mailgun');
    Mailgun.initialize("mydomain.mailgun.org");

【问题讨论】:

【参考方案1】:

开源 Parse 服务器中不提供 Stripe、Mailgun、Sendgrid、Twilio 等原生云代码模块。

同样使用官方的 npm 模块:

    Stripe npm module Mailgun npm module

参考:Migrate an existing Parse app - Github

注意:

由于 Parse 托管的 Cloud Code 未运行完整节点环境,因此您的 Cloud Code 在 Parse Server 中的运行方式可能存在细微差异。我们建议您使用所有关键代码路径以确保功能完整。

【讨论】:

我在创建 Parse.Object 时仍然遇到问题,但服务器运行并且没有崩溃【参考方案2】:

我从使用云代码进行收费切换到在我的 index.js 文件中创建路线进行收费。在 index.js 中创建这样的路由

var stripe = require('stripe')('sk_test_****');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded(
    extended: false
));
app.post('/charge', function(req, res)
    var token = req.body.token;
    var amount = req.body.amount;
    stripe.charges.create(
        amount: amount,
        currency: 'usd',
        source: token,
    , function(err, charge)
        if(err)
            // Error check
        else
            res.send('Payment successful!');
    
);

我使用 jQuery post 调用此路由,但是您也可以在表单中调用它

var handler = StripeCheckout.configure(
    key: 'pk_test_****',
    locale: 'auto',
    token: function(token)
        $.post('/charge', 
            token: token.id,
            amount: total,
        , function(data, status)
            alert(data);
        );
    
);

【讨论】:

以上是关于解析开源服务器云代码的工作方式与旧的不同的主要内容,如果未能解决你的问题,请参考以下文章

开源的新型云原生事件驱动架构实践解析

AngularJS“响应式”调用与旧的 AJAX 调用有啥不同?

基于开源的消息队列云服务研究

开源2--RSS新闻情报云

共码未来 | 提供运营数据库工作负载的优越平台

共码未来 | 提供运营数据库工作负载的优越平台