Хранение ArrayBuffer в mongodb с мангустой - PullRequest
2 голосов
/ 24 апреля 2020

поэтому я пытался сохранить массив буферов книги в 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

...