2017-01-05 16 views
0

私のlocalhostでnodejsアプリケーションを実行しているが、herokuにデプロイすると成功するが、 "Applicationエラー "、" herokuログ "を使用すると、次のように表示されます。 console screenshotherokuにnodejsアプリケーションをデプロイすると成功するが、「アプリケーションエラー」が発生する

私のアプリで何が問題なのか分かりません。ここで

は私のpackage.jsonは@Lucas片山、最終的に解決される問題の助けに

{ 
    "main": "index.js", 
    "scripts": { 
    "test": "mocha --harmony test", 
    "start": "cross-env NODE_ENV=production pm2 start index.js --node-args='--harmony' --name 'adolt-blog'" 
    }, 
    ... 
    "dependencies": { 
    "config-lite": "^1.5.0", 
    "connect-flash": "^0.1.1", 
    "connect-mongo": "^1.3.2", 
    "cross-env": "^3.1.3", 
    "ejs": "^2.5.2", 
    "express": "^4.14.0", 
    "express-formidable": "^1.0.0", 
    "express-session": "^1.14.2", 
    "express-winston": "^2.0.0", 
    "marked": "^0.3.6", 
    "moment": "^2.17.0", 
    "mongolass": "^2.3.2", 
    "objectid-to-timestamp": "^1.3.0", 
    "sha1": "^1.1.1", 
    "winston": "^2.3.0", 
    "pm2": "^2.2.3", 
    "mocha": "^3.2.0" 
    } 
} 

とindex.js

var path = require('path'); 
var express = require('express'); 
var session = require('express-session'); 
var MongoStore = require('connect-mongo')(session); 
var flash = require('connect-flash'); 
var config = require('config-lite'); 
var routes = require('./routes'); 
var pkg = require('./package'); 
var winston = require('winston'); 
var expressWinston = require('express-winston'); 

var app = express(); 

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

app.use(session({ 
    name: config.session.key, 
    secret: config.session.secret, 
    cookie: { 
     maxAge: config.session.maxAge 
    }, 
    store: new MongoStore({ 
     url: config.mongodb 
    }), 
    saveUninitializedSession: true, 
    resaveSession: true 
})); 

app.use(flash()); 
app.use(require('express-formidable')({ 
    uploadDir: path.join(__dirname, 'public/img'), 
    keepExtensions: true 
})); 

app.locals.blog = { 
    // title: pkg.name, 
    // description: pkg.description 
    title: 'Adolt\'s Blog', 
    description: 'Learn Node.js' 
}; 

app.use(function (req, res, next) { 
    res.locals.user = req.session.user; 
    res.locals.success = req.flash('success').toString(); 
    res.locals.error = req.flash('error').toString(); 
    next(); 
}); 

app.use(expressWinston.logger({ 
    transports: [ 
    new (winston.transports.Console)({ 
     json: true, 
     colorize: true 
    }), 
    new winston.transports.File({ 
     filename: 'logs/success.log' 
    }) 
    ] 
})); 

routes(app); 

app.use(expressWinston.errorLogger({ 
    transports: [ 
    new winston.transports.Console({ 
     json: true, 
     colorize: true 
    }), 
    new winston.transports.File({ 
     filename: 'logs/error.log' 
    }) 
    ] 
})); 

if (module.parent) { 
    module.exports = app; 
} else { 
    const port = process.env.PORT; 
    app.listen(port, function() { 
    console.log(`${pkg.name} listening on port ${port}`); 
    }); 
} 
+0

昨日、@ indexing.js .... –

+0

@ルーカス片山を提供してください。ありがとうございます。 – Adolt

+0

問題がないようです... http://pm2.keymetrics.io/docs/usage/use-pm2-with-cloud-providers/ –

答えて

1

おかげです。


まず、use-pm2-with-cloud-providersに従ってmain.jsを追加します。その後、

そして最後に、あなたのアプリケーションを再構築し、それが動作するかどうかを確認Procfile

このような
web: node main.js 

を修正します!


希望すると助かります!がんばろう!

関連する問題