Login/register 将网站部署到 Heroku 时无法正常工作

Login/register not working when website deployed to Heroku

我有一个在 localhost:3000 上运行良好的 express 应用程序,并且 mongoDB 云数据库也已成功连接,但是当我部署到 Heroku 时,登录和注册超时。

我收到错误代码=h12,这是一个超时错误。我想知道我是否遗漏了什么,或者我是否应该使用不同的 login/register 插件。目前正在使用 passportJS 和 Passport-Local-Mongoose。

const express = require('express');
const mongoose = require('mongoose');
const ejs = require('ejs');
const bodyParser = require('body-parser');
const session = require('express-session');
const passport = require('passport');
const passportLocalMongoose = require('passport-local-mongoose');

const Chart = require('chart.js');
const ObjectId = require('mongodb').ObjectID;

const password = process.env.PASSWORD;

const Schema = mongoose.Schema;

const app = express();

app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static('public'));


app.use(session({
  secret: "null",
  resave: false,
  saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());


userSchema.plugin(passportLocalMongoose);

const User = mongoose.model('User', userSchema);

passport.use(User.createStrategy());
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

app.post('/register', (req, res)=>{
  User.register({username: req.body.username}, 
req.body.password, function(err, user){
    if (err){
      console.log(err);
      res.redirect('/register');
    } else {
    passport.authenticate('local')
    (req, res,function(){
    res.redirect('/home');
  });
}

}); });

如果您在本地有任何环境变量,您还需要在 Heroku 中添加这些变量。转到您的 heroku 控制面板,转到设置,然后单击显示配置变量。在那里,您添加键值对