Javascript 如何在mongodb中发布图像?
晚上好,互联网上的人们, 我正试图将图片发布到Mongodb,但它不起作用。 编辑:看起来我是以JSON的形式发布图像数据(我不应该这么做),但我不知道如何做 代码上载中间件:Javascript 如何在mongodb中发布图像?,javascript,node.js,reactjs,mongodb,express,Javascript,Node.js,Reactjs,Mongodb,Express,晚上好,互联网上的人们, 我正试图将图片发布到Mongodb,但它不起作用。 编辑:看起来我是以JSON的形式发布图像数据(我不应该这么做),但我不知道如何做 代码上载中间件: const path = require("path"); const multer = require("multer"); //location file const storage = multer.diskStorage({ destination: functi
const path = require("path");
const multer = require("multer");
//location file
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
},
filename: function (req, file, cb) {
let ext = path.extname(file.originalname);
cb(null, Date.now() + ext);
},
});
const upload = multer({
storage: storage,
fileFilter: function (req, file, cb) {
if (file.mimetype == "image/png" || file.mimetype == "image/jpg") {
cb(null, true);
} else {
alert("only jpg & png files");
cb(null, false);
}
},
limits: {
fileSize: 1024 * 1024 * 1024 * 5,
},
});
module.exports = upload;
代码路由器:
const router = require("express").Router();
let User = require("../model/userSchema");
const upload = require("../middleware/upload");
router.get("/", async (req, res) => {
try {
const users = await User.find();
res.json(users);
} catch (Error) {
throw new Error("error");
}
});
router.post("/add", upload.single("image"), async (req, res) => {
console.log(req.file);
const user = new User({
name: req.body.name,
age: req.body.age,
});
if (req.file) {
user.image = req.file.path;
}
try {
const savedUser = await user.save();
res.json(savedUser);
} catch (err) {
console.log(err);
}
});
代码表单(正在上载图像的位置):
fetch(`${endpoint}/User/add`{
方法:“POST”、//或“PUT”
标题:{
“内容类型”:“应用程序/json”,
},
正文:JSON.stringify(用户),
})
.then(response=>response.json())
。然后(数据=>{
console.log(“成功:”,数据);
})
.catch(错误=>{
控制台错误(“错误:”,错误);
});
//发送时将用户设置为空,以便客户端可以轻松添加更多用户
setUser(“”);
设置(“”);
setImage(“”);
};
返回(
生日男孩/女孩的名字
进入年龄
上传照片
创建用户
这可能有帮助:这可能有帮助:
fetch(`${endpoint}/User/add`, {
method: "POST", // or 'PUT'
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(user),
})
.then(response => response.json())
.then(data => {
console.log("Success:", data);
})
.catch(error => {
console.error("Error:", error);
});
//set user to blank when sendin, so client can easily add more users
setUser("");
setAge("");
setImage("");
};
return (
<form
onSubmit={submitHandle}
encType="multipart/form-data"
method="post"
action="/upload"
>
<div className="form-group">
<label for="exampleInputEmail1">Name birthday boy/girl</label>
<input
type="text"
className="form-control"
id="exampleInputEmail1"
value={username}
onChange={changeUsername}
aria-describedby="emailHelp"
placeholder="Enter name"
/>
<label>Enter age</label>
<input
type="text"
value={age}
onChange={changeAge}
aria-describedby="emailHelp"
placeholder="Enter age"
/>
<label>Upload photo</label>
<input
type="file"
placeholder="upload image"
value={image}
onChange={changeImage}
/>
</div>
<button type="submit" className="btn btn-success">
Create user
</button>
</form>