提问者:小点点

Node.js TypeError:访问Req.Handle时无法读取未定义的属性“handle”


如果我的console.log(${req.handle}&console.log(${req.email}&console.log(${req}它们都返回未定义?

下面是我的代码,有没有原因它没有得到请求数据?

  exports.uploadImage = (req, res) => {

let db =  firebase.firestore();


const BusBoy = require('busboy');
const path = require('path');
const os = require('os');
const fs = require('fs')

const busboy = new BusBoy ({ headers: req.headers });


let imageFileName;
let imageToBeUploaded = {};

busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {
console.log(`feildname is ${fieldname}`);
console.log(`filename is ${filename}`);
console.log(`mimetype is ${mimetype}`);
console.log(`req email is ${req.email}`);
 //image.png
     const imageExtension = filename.split('.')[filename.split('.').length - 1];
   //sfsgsdgsdgsdgsdgsdgsd.png
   const imageFileName = `${Math.round(Math.random()*100000000000)}.${imageExtension}`;
    const filepath = path.join(os.tmpdir(), imageFileName);
    imageToBeUploaded = {filepath , mimetype };
      file.pipe(fs.createWriteStream(filepath))


})
 busboy.on('finish', () => {

//old syntax
///admin.storage().bucket().upload(imageToBeUploaded.filepath, {

admin.storage().bucket(`${config.storageBucket}`).upload(imageToBeUploaded.filepath, {
resumable: false,
metadata: {
    metadata: {
        contentType: imageToBeUploaded.mimetype
    }
}
})
         .then(() => {
      const imageUrl = 
      `https://firebasestorage.googleapis.com/v0/b/${config.storageBucket}/o/${imageFileName}?alt=media`

    console.log(`this is req = ${req.email}`)

return db.doc(`/users/${req.user.handle}`).update({ imageUrl});

// return db.doc(`/users/xxcell`).update({ imageUrl});

    })
          .then(() => {
        return res.json({message: 'image uploaded successfully'})
      })
      .catch(err => {
      console.error(err);
         return res.status(500).json({error: err.code})
        });
 });
        busboy.end(req.rawBody)
    };

共1个答案

匿名用户

express中的request对象在header函数中公开头参数,如下所示:

app.get("/", (req, res) => {
  console.log(`${req.header(email)}`)
  res.send(200)
})