无法在heroku中的nodejs上发布

时间:2017-05-13 10:03:33

标签: node.js heroku ionic-framework

我在Heroku上运行了一个nodejs应用程序。这是server.js文件

var express = require('express')
  , cors = require('cors')
  , app = express();
var http = require('http').Server(app);
var io = require("socket.io").listen(http);
app.use(cors());
require('./modules/routes.js')(app,io);
app.set('port', process.env.PORT || 5000);

app.listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
});

这是我的routes.js

"use strict";
const bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var time = require('express-timestamp');
var Promise = require('promise');
var momentjs = require('moment');
var _ = require('lodash');

var method = routes.prototype;

function routes(app, io) {

    app.use(time.init);
    app.use(cookieParser());

    app.use(session({ secret: 'asdo8rter65edfgfd53wet34634632y4bluaq', resave: true, saveUninitialized: true }));

    app.all('/', function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        next();
    });
    app.use(bodyParser.json());
    app.post('/testHeroku', function(req, res) {
        console.log(req);
        res.write(JSON.stringify({
            process: "success"
        }));
        res.end();
    });
}
method.getroutes = function() {
    return this;
}

module.exports = routes;

我正在尝试从在Android模拟器中运行的离子应用程序访问/ testHeroku。

离子代码:

vm.testHeroku = function(){
      console.log('testing heroku');
            var testdata = {
              url: config.baseURL + 'testHeroku',
              dataServer: {
                serverTaskRequest: 'getUADSF'
              }
            }
            runajax.runajax_function(testdata, function (testdataResponse) {
              if (testdataResponse.process == 'success') {
                alert(testdataResponse.process);
              }
            }); 
    };

这是我的config.baseURL = abcd-1234.herokuapp.com(这是heroku app url的示例) 我没有从http电话中收到任何回复。

run_ajax服务的代码

.service('runajax', ['$http', function ($http) {
    this.runajax_function = function (request, callback) {
      var url = request.url;
      var dataServer = request.dataServer;
      // console.log('runajax function called -> ' + url);
      // console.log(dataServer);
      $http.post(url, dataServer).success(function (data, status, headers, config) {
          callback(data);
        })
        .error(function () {
          callback(status);
        });
    }
  }])

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。 pp.set('port', process.env.PORT || 5000);出现了错误,我将其更改为var port = process.env.PORT || 8080;