現在、高速セッションでデータを保存しようとしています。
次のパッケージを使用しています:
"connect-mongo": "^0.8.2"
"express": "~4.0.0"
"express-session": "^1.11.3"
"mongoose": "~3.6.13"
私はこのようにセッションを実装しています:
// Loading packages
var express = require('express');
var app = express();
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
// Connect to MongoDB
var mongoose = require('mongoose');
var options = { server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } },
replset: { socketOptions: { keepAlive: 1, connectTimeoutMS : 30000 } } };
mongoose.connect(process.env.DATABASE, options);
var router = express.Router();
// Session storage
router.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
store: new MongoStore({mongooseConnection: mongoose.connection}),
cookie: {
maxAge: 60*60*24*7*1000
}
}));
// Routes
router.route('/user/me')
.get(function(req, res) {
console.log(req.session);
});
router.route('/auth/login')
.post(function(req, res) {
req.session.userId = req.params.id;
});
app.use('/api', router);
var port = process.env.PORT || 8080;
app.listen(port);
console.log('Magic happens on port ' + port);
現在、次の問題があります。「Postman REST Client」(Chrome 拡張機能) というソフトウェアを使用して /api/auth/login に投稿しようとすると、機能し、/api/user/me を取得するときにユーザー ID がログに記録されます。
しかし、angular.js アプリで /api/auth/login に投稿しようとすると、セッション値が保存されません。userId なしで常にクリーンなセッション オブジェクトを取得します。
また、保存される Cookie はありません。
手伝っていただけませんか?
あいさつ:マックス