2
私はExpressアプリケーションでセッションにredisを使用しようとしています。'セッション'は未定義です - セッションストア用のEste JS/Express/Redis
私は次のようにします。
サーバー/ auth.js
import express from 'express';
import uuid from 'uuid';
const router = express.Router();
router.route('/login').post((req, res) => {
const { password } = req.body;
if (password !== 'pass1') {
res.status(401).end();
} else {
const token = uuid.v4();
req.session.token = token;
res.status(200).send({token}).end();
}
});
router.route('/watch').post((req, res) => {
console.log(req.session.token);
res.status(200).send({}).end();
});
router.route('/logout').post((req, res) => {
...
});
export default router;
サーバー/ api.js
import express from 'express';
import session from 'express-session';
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';
import cors from 'cors';
import redis from 'redis';
import connectRedis from 'connect-redis';
import auth from './auth';
const app = express();
let client = redis.createClient();
let RedisStore = connectRedis(session);
app.use(cors());
app.use(session({
secret: 'ssshhhhh',
store: new RedisStore({ host: 'localhost', port: 6379, client: client, ttl: 260}),
saveUninitialized: false,
resave: false
}));
app.use(cookieParser("secretSign#143_!223"));
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use('/auth', auth);
app.on('mount',() => {
console.log('Api is available at %s', app.mountpath);
});
export default app;
サーバー/ main.js
import express from 'express';
import api from './api';
import frontend from './frontend';
import errorHandler from './lib/errorHandler';
import config from './config';
const app = express();
app.use('/api/v1', api);
app.use(frontend);
app.use(errorHandler);
app.listen(config.port,() => {
console.log('Server started at port %d', config.port);
});
そして、ファイルserver/auth.jsのconsole_log()は私に "undefined"を与えます。
私はEste JSフレームワークを使用しています。
誰でも助けてくれますか?
ありがとうございました!