Javascript TypeError:无法读取属性';地点';未定义&&;无法读取属性'地点及地点#39; 未定义的
一直在尝试使用AWS S3(Multer和MulterS3)发布带有图像的产品。每次使用邮递员时,我都会收到“TypeError:Cannotreadproperty'location'of undefined”,这是我的Image变量所在的行。我做错了什么? 这是我的密码 seller.js product.jsJavascript TypeError:无法读取属性';地点';未定义&&;无法读取属性'地点及地点#39; 未定义的,javascript,node.js,mongodb,amazon-web-services,Javascript,Node.js,Mongodb,Amazon Web Services,一直在尝试使用AWS S3(Multer和MulterS3)发布带有图像的产品。每次使用邮递员时,我都会收到“TypeError:Cannotreadproperty'location'of undefined”,这是我的Image变量所在的行。我做错了什么? 这是我的密码 seller.js product.js 为什么我不在s3中存储图像。请帮助我。当您通过邮递员发送post请求时,是否设置标题内容类型:“多部分/表单数据”?\u italic\u Yes@OTZCan您可以在中分享您通过邮
为什么我不在s3中存储图像。请帮助我。当您通过邮递员发送post请求时,是否设置标题
内容类型:“多部分/表单数据”
?\u italic\u Yes@OTZCan您可以在中分享您通过邮递员发送请求的方式?\u italic@OTZ解决了问题。当我从postman中删除内容类型:“multipart/formdata”
时,它就开始工作了。谢谢你。
const express = require('express');
const router = express.Router();
const Product = require('../models/product');
const aws = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
const s3 = new aws.S3({accessKeyId:"XXXXX",secretAccessKey:"XXXXXX"})
const checkJWT = require('../middlewares/check-jwt');
/* image filter */
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
} else {
cb(new Error('Invalid Mime Type, only JPEG and PNG'), false);
}
}
const upload = multer({
fileFilter,
storage: multerS3({
s3: s3,
bucket:'XXXXX',
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
router.route('/products')
.post([checkJWT, upload.single('product_picture')], (req, res, next) => {
let product = new Product();
product.owner = req.decoded.user._id;
product.category = req.body.categoryId;
product.title = req.body.title;
product.price = req.body.price;
product.description = req.body.description;
product.image = req.file.location;
product.save();
res.json({
success: true,
message: 'Successfully Added the product'
});
})
module.exports = router;
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ProductSchema = new Schema({
category: { type: Schema.Types.ObjectId, ref: 'Category' },
owner: { type: Schema.Types.ObjectId, ref: 'User' },
reviews: [{ type: Schema.Types.ObjectId, ref: 'Review' } ],
image: String,
title: String,
description: String,
price: Number,
created: { type: Date, default: Date.now }
});
module.exports = mongoose.model('Product', ProductSchema);