현재 Node/Express/MongoDB를 사용하는 프로젝트에서 작업 중입니다. Mongoose를 사용하여 DB와 스키마 및 인터페이스를 만듭니다. "express-sessions"모듈을 사용하고 세션 값을 설정했습니다. 특히, "req.session.user"는 로그인 할 때 사용자 이름과 동일합니다.노드/익스프레스 세션 값 삽입
여기 내 질문에 mongodb에 세션 값을 삽입하는 방법은 무엇입니까? 내 모델을 올바르게 정의했습니다.
doc_type.model.js 정의 된 경로와
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var TypesSchema = new Schema({
type_id: {
type: String,
uppercase: true,
required: true
},
type_description: {
type: String,
required: true
},
created_by: {
type: String,
required: false
},
creation_date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('document_types', TypesSchema);
admin.js. 당신이 .post 방법에서 보면
adminRouter.route('/doc_types')
.get((req, res) => {
Type.find({}, (err, types) => {
if (err) {
console.error(err)
res.json(err)
}
else if (!req.session.user || !req.session.badge) {
res.redirect('/login');
}
else if (req.session.user || req.session.badge) {
res.render('doc_types', { pageTitle: 'Document Types', types: types, currentUser: req.session.user })
}
})
})
.post((req, res) => {
var type = new Type();
type.type_id = req.body.input_type_id;
type.type_description = req.body.input_type_description;
type.created_by = req.session.user;
type.save((err) => {
if (err) {
console.error(err)
res.json(err)
}
else {
res.json("Success!");
}
})
});
, 당신은 라인을 알 수 있습니다 "type.created_by = req.session.user;". 그런 다음 스키마를 통해 내 데이터를 내 db에 저장합니다. 그렇게하면 내 세션 값이 몽구스 스키마로 전달되지 않습니다. 그것은 비어 있습니다. 그러나 console.log에 req.session 값이 표시되면 잘 표시됩니다.
누군가 내 문제를 명확히 할 수 있습니까? 나는 혼란 스럽다. 아마도 내가 간과 한 바보 같은 짓 일 겁니다.