我一直试图在Android模拟器上通过我的React Native应用发出发布请求,但是我在请求正文中发送的对象被vvalue赋值为undefined,因此试图解决这个问题但没有成功。请帮助我
这是我应用程序中窗体的代码,称为“ API.js”,其名称仅用于测试API端点
const express = require("express");
const router = express.Router();
const bodyParser = require("body-parser");
const path = require("path");
const cloudinary = require("cloudinary");
const mongoose = require("mongoose");
//Product Model
const product = require("../models/product").product;
router.use(bodyParser.json());
//GET route
router.get("/", (req, res) => {
product.find().then(product => res.json(product));
});
// POST route
cloudinary.config({
cloud_name: "cloud222",
api_key: "783935981748815",
api_secret: "uY47vBS1rI2x5jvFtnXQIjMMqU0"
});
router.post("/", (req, res) => {
//MISC//
let imageUrl;
console.log("starting");
//MISC//
//CLOUDINARY UPLOAD
cloudinary.v2.uploader.upload(req.body.image, (error, result) => {
if (error) {
console.log(error);
console.log(`${req.body.image}`);
} else {
imageUrl = result.secure_url;
//MONGO UPLOAD
var productv = {
name: req.body.name,
price: req.body.price,
size: req.body.size,
description: req.body.description,
image: imageUrl,
popularity: req.body.popularity
};
const productvar = new product(productv);
productvar
.save()
.then(product => console.log(product))
.then(product => res.json(product))
.catch(err => console.log(err));
}
});
//END//
});
module.exports = router;
这是我的后端路由“ product.js”的代码,该代码可以接收请求(node.js和express)
{{1}}
数据被记录为未定义状态,因此请求没有得到响应
答案 0 :(得分:0)
我认为问题在于您已经创建了一个FormData并希望将其发布,但是添加的标头是“ application / json”。您应该更改它:
headers: {
'content-type': 'multipart/form-data',
'Accept':'multipart/form-data',
},
希望它对您有用。
答案 1 :(得分:0)
问题解决了
由于onChange不会返回字符串,因此不得不使用onChangeText =
而不是onChange