2017-03-24 2 views
0

현재 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 값이 표시되면 잘 표시됩니다.

누군가 내 문제를 명확히 할 수 있습니까? 나는 혼란 스럽다. 아마도 내가 간과 한 바보 같은 짓 일 겁니다.

답변

0

Welp, 그것은 어리 석다. :) 나는 우편함을 사용하여 내 데이터를 페이지에 "POST"했습니다. 우편 배달부는 세션 값이 무엇인지 전혀 모르기 때문에 몽구스 문서 ID로 전송 된 데이터가 없습니다. 세션은 서버/브라우저 측에만 저장되었습니다. 수업은 배웠습니다. 하하.