【问题标题】:Website can not access MongoDB on AWS网站无法访问 AWS 上的 MongoDB
【发布时间】:2017-06-07 11:20:13
【问题描述】:

我已经在 AWS 上部署了 MEAN Stack 网站。网站在我的本地运行良好。 但是当我尝试访问 DB(MongoDB) 时,它在部署后显示 POST/xxx/register 500(Internal Server Error)。

我已经按照以下流程进行了部署。

  • 项目在 Github 上发布
  • 使用 MEAN 支持的 Bitnami 在 AWS 上安装实例。
  • 为网站和 mongoDB 添加了协议(8080、27017)。
  • 使用 Putty 从 Git 克隆。

似乎是数据库访问问题。 例如,当我厌倦了在实时服务器上注册用户时,Putty 显示如下

POST /api/v1/register 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;

那是怎么回事? 干杯。

【问题讨论】:

  • 大量与这里的问题无关的代码。错误出现在您未显示的代码中。 ./routes/authenticate_api
  • 我要求您将其包含在您的问题中,因为错误发生在该代码中定义的路线上。我还说您在问题中列出的所有代码都与错误无关。只需提供受影响路线的代码即可。
  • 你的意思是,你想签出 authenticate_api.js 文件?
  • 我的意思是它是您真正需要在这个问题上发布的 only 代码。请编辑您的问题以至少包含它。
  • 已编辑。没事吧?

标签: node.js mongodb amazon-web-services


【解决方案1】:

我刚刚自己解决了。 这是一个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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 2023-01-21
    • 2021-10-14
    • 2019-05-24
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    相关资源
    最近更新 更多