поэтому я пытался сохранить массив буферов книги в mongodb с помощью mon goose Я получаю ошибку, связанную с проверкой, надеюсь, вы, ребята, можете мне помочь
вот мой бэкэнд:
это моя схема
...
const UserSchema = new mongoose.Schema({
book: {
type: Buffer,
},
});
...
роутер:
...
router.post("/api/book", auth, async (req, res) => {
try {
const { user } = req;
user.book = req.body.book;
await user.save();
res.send({ success: true });
} catch (error) {
console.log(error.name, error.message);
res.send({ success: false, error });
}
});
...
вот мой интерфейс:
это место, где я сделал отправьте запрос
...
getBook = async (book) => {
console.log(book);
if (book) {
try {
const res = await axios.post(
"/api/book",
{ book },
{
headers: {
Authorization:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlYTJlOWJlZmI0OTVhMDZhZTkzZjZmNyIsImlhdCI6MTU4NzczNDk3NH0.fzoJcHbkVhkgYZZgYP0N1XNdqf6uowAVrekntuulOu0",
},
}
);
} catch (error) {
console.log(error.name, error.message);
}
}
...
это место, где вы можете получить книгу, преобразовать ее в буфер массива и передать ее в код выше
...
handleOnChange = (event) => {
if (event.target.files[0].type === "application/epub+zip") {
let reader = new FileReader();
reader.readAsArrayBuffer(event.target.files[0]);
reader.onload = () => {
this.props.getBook(reader.result);
};
} else {
alert("Only .epub Files are supported");
}
};
...
, и вот моя ошибка на стороне сервера
ValidationError User validation failed: book: Cast to Buffer failed for value "{}" at path "book"
POST /api/book 200 198.131 ms - 533
Я думаю, это потому, что я использую неверный тип данных в mon goose schema