2017-09-14 48 views
0

我有一個節點快速應用程序作爲前端和一個作爲後端運行的spring/tomcat應用程序。我測試了後端api,並且一切正常,在瀏覽器中,當我提出api請求時,它顯示了json響應。雖然當我在節點推出前端應用程序,並在瀏覽器中輸入的登錄表單憑據(本地主機:3000),形式登錄後它提供了以下錯誤:登錄後顯示快捷區域錯誤應用程序

Express 
    500 RangeError: port should be >= 0 and < 65536: 8080; 

     at lookupAndConnect (net.js:945:13) 
     at Socket.connect (net.js:922:5) 
     at Agent.exports.connect.exports.createConnection (net.js:68:35) 
     at Agent.createSocket (_http_agent.js:188:16) 
     at Agent.addRequest (_http_agent.js:157:23) 
     at new ClientRequest (_http_client.js:142:16) 
     at Object.exports.request (http.js:31:10) 
     at Object.wrappedRequest (/home/yanet/Documentos/remax-fe-master-f73335bb25073887ba387954032ee534ad955002/node_modules/newrelic/lib/instrumentation/core/http.js:124:31) 
     at /home/yanet/Documentos/remax-fe-master-f73335bb25073887ba387954032ee534ad955002/node_modules/newrelic/lib/transaction/tracer.js:148:22 
     at ErrorTracer.monitor (/home/yanet/Documentos/remax-fe-master-f73335bb25073887ba387954032ee534ad955002/node_modules/newrelic/lib/error.js:146:12) 

我app.js似乎是罰款。當應用程序啓動它顯示消息:

Express server listening on port 3000 

這是app.js的一部分,我省略與路由做部分:app.get和app.post。

var express = require('express') 
    , routes = require('./routes') 
    , http = require('http') 
    , path = require('path') 
    , url = require('url') 
    , passport = require('passport') 
    , LocalStrategy = require('passport-local').Strategy 
    , ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn 
    , bcrypt = require('bcrypt') 
    , util = require('util') 
    , expressValidator = require('express-validator') 
    , newrelic = require('newrelic') 
// Modules Remax 
    , catalog = require('./routes/catalog') 
    , login = require('./routes/login') 
    , user = require('./routes/user') 
    , rrhh = require('./routes/rrhh') 
    , stock = require('./routes/stock') 
    , movements = require('./routes/movements') 
    , ctasctes = require('./routes/ctasctes') 
    , ranking = require('./routes/ranking') 
    , stats = require('./routes/stats') 
    , statsResumenAgentes = require('./routes/stats.resumen.agentes') 
    , statsResumenOficinas = require('./routes/stats.resumen.oficinas') 
    , reports = require('./routes/reports') 
    , rendicion = require('./routes/rendicion') 
    , configuration = require('./routes/configuration') 
    , admin = require('./routes/admin') 
    , accessControl = require('./routes/accessControl') 
    , ilist = require('./routes/ilist') 
    , benchmark = require('./routes/benchmark')  
// Redis 
    , RedisStore = require('connect-redis')(express) 
    , redis = require("redis") 
    , redisClient 
// App 
    , app = express() 
    , flash = require('connect-flash'); 

/** 
* Redis configuration 
*/ 
if (process.env.REDISCLOUD_URL) { 
    app.use(express.errorHandler()); 
    var redisURL = url.parse(process.env.REDISCLOUD_URL); 
    redisClient = redis.createClient(redisURL.port, redisURL.hostname, {no_ready_check: true}); 
    redisClient.auth(redisURL.auth.split(":")[1]); 
} else { 
    redisClient = redis.createClient(); 
} 

/** 
* Session destroy 
*/ 
process.on('exit', function() { 
    user.destroy(); 
}); 

/** 
* Error handling 
*/ 
process.on("uncaughtException", function (err) { 
    console.log("Error in application: " + err.message); 
    console.log(err.stack); 
    console.log("---------------------------------------"); 
}); 

/** 
* Init user condifguration 
*/ 
user.init(); 

/** 
* App configuration 
*/ 
app.configure(function() { 
    app.locals({ 
     listaModulosSidebar: accessControl.listaModulosSidebar(), 
     canViewURL: accessControl.canView 
    }); 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'ejs'); 
    //app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.compress()); 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(express.cookieParser()); 
    app.use(express.bodyParser()); 
    app.use(expressValidator); 
    app.use(express.session({ 
     secret: "somekey", 
     maxAge: new Date() + 2 * 60 * 60 * 1000, //2hs 
     store: new RedisStore({client: redisClient, ttl: 2 * 60 * 60}) 
    })); 
    app.use(express.methodOverride()); 
    app.use(flash()); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
    app.use(accessControl.validate); 
    app.use(function(req, res, next){ 
     res.locals.loggedUser = req.user; 
     var i = req.path.indexOf('/', 1); 
     if(i > 1){ 
      res.locals.modulepath = req.path.substring(0, i); 
     } else { 
      res.locals.modulepath = req.path; 
     } 
     next(); 
    }); 
    app.use(app.router); 
}); 

app.configure('development', function() { 
    app.use(express.errorHandler()); 
}); 

process.setMaxListeners(0); 

/** 
* Session 
*/ 
passport.use(new LocalStrategy({ 
    usernameField: 'username', 
    passwordField: 'password' 
}, function (username, password, done) { 
    user.login(username, password, function(err, user, message){ 
     if (err) { 
      return done(err); 
     } 
     if (!user) { 
      return done(null, false, { 
       message: message 
      }); 
     } 
     return done(null, user); 
    }); 
})); 

passport.serializeUser(function (user, done) { 
    done(null, user); 
}); 

passport.deserializeUser(function (user, done) { 
    done(null, user); 
}); 

/** 
* Create server 
*/ 
http.createServer(app).listen(app.get('port'), function() { 
    console.log("Express server listening on port " + app.get('port')); 
}); 
+0

您可以提供一個啓動服務器的代碼? – shaochuancs

+0

我編輯了我的問題 –

回答

1

問題出在我的環境變量定義在/ etc/environment中,它有PORT,這是一個用逗號拼寫的拼寫錯誤。 我

REMAX_SERVICE_HOST=localhost:8080;

我固定:

REMAX_SERVICE_HOST=localhost:8080

相關問題