samedi 7 mars 2015

Getting separate ports to communicate in MEAN stack

I'm trying to set up a MEAN stack to integrate with Stripe. I would like to charge the card, and then save the Stripe token and user's email to a database. I'm currently running Angular on port 9000 and Express on port 3000. I'm having trouble getting my Angular form to post to the server. Nodemon is generating the following error:



app.set('port', port); TypeError: undefined is not a function



Any thoughts on what I'm doing wrong here?


HTML:



<form stripe-form="handleStripe">
<div class="form-group">
<label>Card number</label>
<input type="text" class="form-control" ng-model="number" payments-validate="card" payments-format="card" payments-type-model="type" ng-class="myForm.number.$card.type"/>
</div>

<div class="form-group">
<label>Expiration</label>
<input type="text" class="form-control" ng-model="expiry" payments-validate="expiry" payments-format="expiry" />
</div>

<div class="form-group">
<label>CVC</label>
<input type="text" class="form-control" ng-model="cvc" payments-validate="cvc" payments-format="cvc" payments-type-model="type"/>
</div>
<button type="submit" class="btn btn-primary btn-large">Submit</button>
</form>


Javascript for server



var router = express.Router();
var Customer = require('../app.js');
module.exports = router;
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var cors = require('cors');
var routes = require('./routes/index');
mongoose.connect('mongodb://localhost/test');

var customerSchema = {
token:String,
email: String
}

var Customer = mongoose.model('Customer', customerSchema, 'customers')

var app = express();
app.use(cors());

app.post('/customers', function (req, res) {
Customer.find(function (err, doc) {
res.send(doc);
})
})

app.listen(3000);

var stripe = require("stripe")("sk_test_KEY");

stripe.charges.create({
amount: 400,
currency: "usd",
source: "tok_15dKVmKUwBWfcUd6tTMAdnXN",
description: "Charge for test@example.com"
}, function(err, charge) {
});

//from the bin folder:
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);


Javascript on client side:



.controller('MainCtrl', function ($scope) {
$scope.handleStripe = function(status, response){
if(response.error) {

} else {

token = response.id;
}
};
});


[EDIT: Added javascript for client side and info related to app.set('port', port);]


Aucun commentaire:

Enregistrer un commentaire