网站无法访问AWS上的MongoDB
问题描述:
我在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;
瓦在这件事上呢? 干杯。
答
我刚刚解决它自己。 这是一个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
现在运行良好。感谢您的考虑。
对这里的问题无关紧要的代码负载。错误出现在您未显示的代码中。 '。/ routes/authenticate_api' –
我要求你将它包含在你的问题中,因为错误发生在该代码中正在定义的路由上。我也在说,你的问题中没有列出的代码与错误有关。只需提供受影响路线的代码即可。 –
你的意思是,你想结账authenticate_api.js文件? –