Как настроить express хранилище памяти - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь развернуть докеризованный узел и express проект. Я получаю эту ошибку, и я добавил хранилище памяти, но ошибка все еще сохраняется. Я думаю, что мой сценарий не в правильном порядке

Warning: connect.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and will not scale past a single process.

Мой сценарий выглядит следующим образом

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const AdminBroExpress = require('admin-bro-expressjs');
const bcrypt = require('bcryptjs');
const session = require('express-session');
var MongoDBStore = require('connect-mongodb-session')(session);
const { getSecret } = require('./app/secrets');
const { adminBro } = require('./adminbro');
if (process.env.NODE_ENV !== 'production') {
    require('dotenv').config();
}
mongoose.Promise = global.Promise;
mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
mongoose.set('useUnifiedTopology', true);
const User = require('./app/models/user');
const installRoute = require('./app/routes/install');
const dataRoute =  require('./app/routes/data');
const app = express();
var store = new MongoDBStore({
  uri: getSecret('dbUri'),
  collection: 'memStoreSessions'
});
const port = process.env.PORT;
app.use(express.static('./public'));
app.set('view engine', 'ejs');
app.use(bodyParser.json());
const sess = {
  secret: 'tranquility-bay',
  cookie: {
    maxAge: 1000 * 60 * 60 * 24 * 7 // 1 week
  },
  store: store,
  resave: true,
  saveUninitialized: true
}
if (app.get('env') === 'production') {
  app.set('trust proxy', 1) // trust first proxy
  sess.cookie.secure = true // serve secure cookies
}
const router = AdminBroExpress.buildAuthenticatedRouter(adminBro, {
  authenticate: async (email, password) => {
    const user = await User.findOne({ email })
    if (user) {
      const matched = await bcrypt.compare(password, user.encryptedPassword)
      if (matched) {
        return user
      }
    }
    return false
  },
  cookiePassword: 'some-secret-password-used-to-secure-cookie',
})
app.use(session(sess));
app.use(cors());
app.options('*', cors());
app.use(adminBro.options.rootPath, router);
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/', installRoute);
app.use('/data', dataRoute);
const run = async () => {
  await mongoose.connect(getSecret('dbUri'),
  { useNewUrlParser: true, useUnifiedTopology: true })
  app.listen(port, () => {
    console.log(`Server running on port ${port}`)
  })
}
run()

Я получил ошибку до и после добавления хранилища памяти. Это докеризированный проект. Приложение собирается должным образом, но в консоли я получаю это предупреждение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...