我正在编写一个简单的Express应用程序来处理图像上传和搜索。上传工作正常,但相同的req.user._id在get请求中无效。知道为什么吗?
//standard express-generator server.js requires
//passport.js implementation
var session = require('express-session');
app.use(session({
secret: '*****',
proxy: true,
resave: true,
saveUninitialized: true
}));
post函数使用Multer中间件可以很好地工作。它使用req.user._id时没有任何问题--我已经检查了它是否上传到了数据库。
app.post('/upload/photoData', upload.single('photo'), function(req, res) {
//Retrieve data from request using multer middleware objects
var title = req.body.title;
var description = req.body.description;
var photoURL = req.file.filename;
var date = new Date();
var user_id = req.user._id;
//Code to create Mongoose photo model instance using variables above and save
});
在我测试了一个返回以下错误的get函数后,立即返回了以下错误:TypeError:无法读取未定义的属性'_id'
app.get('/file/newCalendar', function(req, res) {
var selectedDate = moment(req.query.m)//moment(req.query.m);
var selectedMonth = selectedDate.month()//selectedDate.month();
var user_idLookup = req.query.v;
if(!user_idLookup){
user_idLookup = req.user._id;
};
jsontest = {
'selectedDate': selectedDate,
'selectedMonth': selectedMonth,
'user': user_idLookup
};
})
我现在觉得自己很蠢。未定义Req.User,因为我在登录/序列化User之前手动提交了GET请求!