2017-06-06 149 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 

现在运行良好。感谢您的考虑。