2017-12-29 42 views
0

ノードjsとの支払いトランザクションを処理する簡単なサーバーを作成しています。私はherokuプロジェクトテンプレートを使い始め、 "checkout"ルートロジックを追加しました。私がlocalhostに展開したとき、それは私のためにうまくいきました。しかし、私はherokuサーバーに展開した後、 "POST/checkoutできません"というエラーが出ます。マイindex.jsコードは以下の通りです:ノードjs:herokuでPOSTエラーが発生しない

const express = require('express'), bodyParser = require('body-parser'); 
const path = require('path') 
const PORT = process.env.PORT || 5000 
var router = express.Router(); 
var checkout = require('./routes/checkout'); 
var braintree = require('braintree'); 
const app = express() 
.use(express.static(path.join(__dirname, 'public'))) 
.set('views', path.join(__dirname, 'views')) 
.set('view engine', 'ejs') 
.get('/', (req, res) => res.render('pages/index')) 

.use(bodyParser.urlencoded({extended: true})) 
.post('/checkout', (req, res) => { 
    console.log(req.body.paymentMethodNonce); 
    //res.send(req.body); 

    var gateway = braintree.connect({ 
            environment: braintree.Environment.Sandbox, 
            merchantId: "merchantId", 
            publicKey: "publicKey", 
            privateKey: "privateKey" 
            }); 


    // Use the payment method nonce here 
    //console.log(req.body); 
    var nonceFromTheClient = req.body.paymentMethodNonce; 
    var amount = req.body.amount; 
    //Create a new transaction for $10 
       var newTransaction = gateway.transaction.sale({ 
                  //amount:'10.00', 
                  amount: amount, 
                  //paymentMethodNonce: "fake-valid-nonce", 
                  paymentMethodNonce: nonceFromTheClient, 
                  options: { 
                  // This option requests the funds from the transaction 
                  // once it has been authorized successfully 
                  submitForSettlement: true 
                  } 
                  }, function(error, result) { 
                  if (result) { 
                  res.send(result); 
                  } else { 
                  res.status(500).send(error); 
                  } 
                  }); 


    }) 
    .listen(PORT,() => console.log(`Listening on ${ PORT }`)) 
+0

どのようなエラーがありますか? –

+0

チェックアウトルート(https://radiant-journey-93290.herokuapp.com/checkout)のための@AkimBenchiha 404が、私はルートのためにこのエラーを取得しませんhttps://radiant-journey-93290.herokuapp.com –

+0

あなた'.get( '/ checkout'、(req、res)=> {...})'はありません。見せてもらえますか ? –

答えて

0

@Elenaあなたは問題が以下のコマンドを再デプロイして実行した後に解決された

+0

もう少し詳しく説明できますか?例えばコード例を与える – Ward

-1
const express = require('express'); 
const bodyParser = require('body-parser'); 
var checkout = require('./routes/checkout'); 
var braintree = require('braintree'); 
const path = require('path') 
const PORT = process.env.PORT || 5000 
var router = express.Router(); 
const app = express(); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: false})); 


app.use(express.static(path.join(__dirname, 'public'))); 
app.set("views", (__dirname + "/views")); 
app.set("view engine", "ejs"); 

app.get('/', (req, res) => res.render('pages/index')) 
app.post('/checkout', (req, res) => { 

    console.log(req.body.paymentMethodNonce); 

    var gateway = braintree.connect({ 
     environment: braintree.Environment.Sandbox, 
     merchantId: "merchantId", 
     publicKey: "publicKey", 
     privateKey: "privateKey" 
    }); 

    var nonceFromTheClient = req.body.paymentMethodNonce; 
    var amount = req.body.amount; 

    //Create a new transaction for $10 
    var newTransaction = gateway.transaction.sale({ 
      //amount:'10.00', 
      amount: amount, 
      //paymentMethodNonce: "fake-valid-nonce", 
      paymentMethodNonce: nonceFromTheClient, 
      options: { 
      // This option requests the funds from the transaction 
      // once it has been authorized successfully 
      submitForSettlement: true 
      } 
     }, function(error, result) { 
       if (result) { 
        res.send(result); 
       } else { 
        res.status(500).send(error); 
       } 
      } 
    ) 
}); 
0

POSTメソッドの後に静的なファイルを使用することができます。

heroku login 
heroku git:clone -a repository_name 

ソースコードを元のコードに置き換えます(変更はしませんが、node_modulesフォルダは除きます)

git add . 
git commit -m "added updated code" 
git push heroku master 
関連する問題