简体   繁体   English

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

[英]Express 4 HTTP requests: user._id undefined

I'm writing a simple Express app to handle image uploads and searches. 我正在编写一个简单的Express应用程序来处理图像上载和搜索。 The upload works fine but the same req.user._id is invalid in the get request. 上载正常,但在get请求中相同的req.user._id无效。 Any idea why? 知道为什么吗?

//standard express-generator server.js requires
//passport.js implementation

 var session      = require('express-session');
 app.use(session({
   secret: '*****',
   proxy: true,
   resave: true,
   saveUninitialized: true
  }));

The post function works fine using Multer middleware . 使用Multer中间件可以很好地实现 post函数。 It uses req.user._id with no issues - I've checked that it's being uploaded to the database. 它使用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


});

Immediately after I'm testing a get function that returns the following error: TypeError: Cannot read property '_id' of undefined 在测试返回以下错误的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
    };
})

Well I feel stupid now. 好吧,我现在觉得很蠢。 req.user was not defined because I was manually submitting the GET request before signing in/serializing user! 未定义req.user,因为我在登录/序列化用户之前手动提交了GET请求!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM