提问者:小点点

Express 4 HTTP请求:user._id未定义


我正在编写一个简单的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
    };
})

共1个答案

匿名用户

我现在觉得自己很蠢。未定义Req.User,因为我在登录/序列化User之前手动提交了GET请求!