Удалить один элемент из лица Mon goose nodeJS - PullRequest
0 голосов
/ 05 марта 2020

У меня есть человек с указанием имени, дня рождения и профиля c. Текстовое поле легко удалить или отредактировать, но если я хочу удалить profilpi c, оно не работает (редактирование работает). Я попытался изменить на post = await Post.remove({_id: "profilpic"}), чтобы он выбрал мне столбец в БД и удалил его или заменил на ноль. Итак, мои маршруты. js

// Delete picture
router.delete('/:id', async (req, res) => {
    let post;
    try {
        post = await Post.findByIdAndRemove()
        await post.profilpicture.remove();
        res.redirect(`/admin`);
    } catch {
        if (post == null) {
            res.redirect('/admin')
        }
        else {
            res.redirect('/admin')
        }
    }
})


// Edit complete Profil


router.get('/:id/edit', async (req, res) => {
    try {
        const findPost = await Post.findById(req.params.id)
        res.render('admin/edit', {
            layout: 'layouts/admin',
            post: findPost
        })
    } catch {
        res.redirect('/admin')
    }
})

// Update artist text
router.put('/:id', async (req, res) => {
    let post;
    try {
        post = await Post.findById(req.params.id);
        post.surname = req.body.surname,
            post.name = req.body.name,
            post.bio = req.body.bio
        // check if cover is set and override (not delete!)
        if (req.body.profilpicture != null && req.body.profilpicture !== '') {
            saveProfilpic(post, req.body.profilpicture)
        }

        await post.save();
        res.redirect('/admin');
    } catch {
        if (post != null) {
            res.send('/admin')
            renderEditPage(res, post, true)
        }
        else {
            res.render('admin/edit', {
                layout: 'layouts/admin',
                post: post,
            })
        }
    }
})

e js file

<form action="/admin/<%= post.id %>?_method=PUT" method="POST">
<div class="form-group picture-container">
    <label for="profilpicture">Profilbild</label>
    <input type="file" class="filepond" name="profilpicture">
    <form method="POST" action="/admin/delete/<%= post.id %>?_method=DELETE" class="float-left">
        <button type="submit" class="btn btn-outline-danger btn-sm m-1">Löschen</button>
    </form>
</div>
</form>

Я должен зафиксировать тег формы внутри тега формы, в противном случае я не могу ничего редактировать и никаких изменений не происходит. отправлено в БД. Что лучше: передать удовольствие от удаления c в другой файл?

...