2017-06-06 117 views
0

我在AWS上部署了MEAN Stack網站。網站在我的本地運行良好。 但它顯示POST/xxx/register 500(內部服務器錯誤)部署後,當我試圖訪問數據庫(MongoDB)。網站無法訪問AWS上的MongoDB

我已經部署瞭如下所示的流程。

  • 項目通過均值供電Bitnami發佈Github上
  • 在AWS上安裝的實例。
  • 爲網站和mongoDB(8080,27017)添加了協議。
  • 使用Putty從Git中克隆。

而且似乎DB訪問問題。 例如,當我累的活的註冊服務器上的用戶膩子顯示一個如下

POST/API/V1 /註冊500 35.645毫秒 - 1675

app.js

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var https = require('https'); 


var mongoose = require('mongoose'); 
var passport = require('passport'); 

mongoose.connect('mongodb://localhost/news'); 
require('./models/Users'); 
require('./config/passport'); 

var index = require('./routes/index'); 
var authenticate_api = require('./routes/authenticate_api'); 

app.use('/', index); 
app.use('/api/v1/', authenticate_api); 

和路由/ authenticate_api.js文件

var mongoose = require('mongoose'); 
var passport = require('passport'); 
var User = mongoose.model('User'); 

require('../config/passport'); 
var express = require('express'); 
var router = express.Router(); 


var jwt = require('express-jwt'); 
var auth = jwt({secret: 'SECRET', userProperty: 'payload'}); 

router.post('/register', function(req, res, next) { 
    if (!req.body.username || !req.body.password) { 
     return res.status(400).json({message: 'Please fill out all fields'}); 
    } 
    var user = new User(); 
    user.username = req.body.username; 
    user.setPassword(req.body.password); 
    user.save(function(err, user) { 
     if(err) { 
      return next(err); 
     } 
     return res.json({token: user.generateJWT()}); 
    }); 
}) 

module.exports = router; 

瓦在這件事上呢? 乾杯。

+1

對這裏的問題無關緊要的代碼負載。錯誤出現在您未顯示的代碼中。 '。/ routes/authenticate_api' –

+0

我要求你將它包含在你的問題中,因爲錯誤發生在該代碼中正在定義的路由上。我也在說,你的問題中沒有列出的代碼與錯誤有關。只需提供受影響路線的代碼即可。 –

+0

你的意思是,你想結賬authenticate_api.js文件? –

回答

0

我剛剛解決它自己。 這是一個mongoDB權限問題 我可以發現mongodb狀態總是停止/等待。 所以我像下面解決它。

/var/log/mongodb/ sudo chown -R mongodb:mongodb . 
/var/lib/mongodb/ sudo chown -R mongodb:mongodb . 
/stack/mongodb/tmp/ sudo chown mongodb mongodb-27017.sock 
$/ ps -ef | grep mongo  {get for mongo PID} 
$/ kill -9 PID 
$/ sudo service mongodb start 

現在運行良好。感謝您的考慮。