【发布时间】: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