2016-04-16 3 views
1

Я создаю приложение стека MEAN с помощью Multer-s3 для загрузки изображений в мою базу данных. Однако, когда я вызываю функцию загрузки я получаю эту ошибку:MULTER-S3: TypeError: невозможно преобразовать объект в примитивное значение ... diate [as _immediateCallback]

POST http://localhost:3000/api/upload/single 500 (Internal Server Error) 
TypeError: Cannot convert object to primitive valu…diate [as _immediateCallback](timers.js:354:15)↵", status: 500, config: Object, statusText: "Internal Server Error" 

В моей стороне сервера app.js

// MULTER 
    var s3config = require('./config/s3'); 
    var upload = multer({ 
     storage: s3({ 
     dirname: s3config.dirname, 
     bucket: s3config.bucket, 
     secretAccessKey: process.env.AWS_ACCESS_SECRET, 
     accessKeyId: process.env.AWS_ACCESS_KEY, 
     region: s3config.region, 
     contentType: function(req, file, next) { 
      next(null, file.mimetype); 
     }, 
     filename: function(req, file, next) { 
      var ext = '.' + file.originalname.split('.').splice(-1)[0]; 
      var filename = uuid.v1() + ext; 
      next(null, filename); 
     } 
     }) 
    }); 

    // UPLOAD SINGLE FILE 
    app.post('/api/upload/single', upload.single('file'), function(req, res) { 
     var clothing_1 = { 
     type: req.body.type, 
     image: req.file.key 
     }; 
     console.log('req.body =' + req.body); 
     console.log('req.body.type =' + req.body.type); 
     console.log('req.file.key =' + req.file.key); 
     // get the user model User.findOne({ id: req.user._id }) 
     User.findOne({ _id: req.user._id }, {}, { new: true }, function(err, user){ 
     user.clothing.push(clothing_1); 
     // save this user 
     user.save(function(err, user){ 
      if(err) return res.status(401).send({ message: 'your error:' + err }); 
      else return res.json({ user: user }) 
     }); 
     }); 

    }); 

В моем Фронтальный контроллер:

self.uploadSingle = function() { 
    Upload.upload({ 
     url: API + '/upload/single', 
     data: { file: self.file, type: self.clothingType } 
    }) 
    .then(function(res) { 
     self.usersClothing = res.data.user.clothing.map(function(clothing) { 
      clothing.image = S3_BUCKET + clothing.image; 
      return clothing; 
     }); 
    }) 
    .catch(function(err) { 
     console.error(err); 
    }); 
    } 

Эта функция выполняется при нажатии кнопки загрузки.

+0

После удаления Console.logs ошибки переключился на: TypeError: Не удается прочитать свойство ' _id ' неопределенной –

+0

была просто вопросом сервер не в состоянии найти пользователь как req.body дал _ID внутри _doc. User.findOne ({_id: req.user._doc._id} исправил проблему –

ответ

0

Был просто вопрос сервера, который не мог найти пользователя, поскольку req.body дал _id внутри _doc.

User.findOne({ _id: req.user._doc._id } fixed the issue 

 Смежные вопросы

  • Нет связанных вопросов^_^