Как удалить профиль пользователя node.js express - PullRequest
0 голосов
/ 26 ноября 2018

Начинающий здесь.Я создал userchema в mongoDB и произвел регистрацию и вход в api. Здесь я не могу понять, как удалить сам профиль пользователя.Я долго зависал над ресурсами, пробовал что-то без понимания.Пожалуйста, помогите мне с кодом и объяснением тоже.Вот мой маршрут '/ register'

router.post('/register',(req,res,next)=>{
  console.log(req.body)

  const name = req.body.name;
  const username = req.body.username;
  const email = req.body.email;
  const password = req.body.password;
  const user = {
    _id:mongoose.Types.ObjectId(),
    name,
    email,
    username,
    password
  }   

Здесь вы получите представление о моей схеме и коллекции.Вот мое представление delete.jade

extends layout

block content
    .container
        ul.errors
            if errors
                each error, i in errors
                    li.alert.alert-danger #{error.msg}
        form(method='post', action='/users/delete/{{user.username}}', )
            h1  Delete Account
            p   Are you sure you want to delete your account?
            br
            button.btn.btn-primary(type='submit') Yes Do It

Я пытался сделать свою конечную точку удаления подобной этой, что мне не подходит, но я не получил четкого представления о функциональности удаления.

router.delete('/delete/username', (req, res) => {
  db.collection('username').findOneAndDelete({username: req.body.username}, 
  (err, result) => {
    if (err) return res.send(500, err)
    console.log('got deleted');
    res.redirect('/');
  })
})

1 Ответ

0 голосов
/ 26 ноября 2018

Ваша проблема в том, что вы не получаете имя пользователя из запроса

router.delete('/delete/:username', (req, res) => {
    const { username } = req.params;
    db.collection('username').findOneAndDelete({username: username}, 
    (err, result) => {
    if (err) return res.send(500, err)
    console.log('got deleted');
    res.redirect('/');
    });
});

Кроме того, на вашем внешнем интерфейсе ваша форма method должна быть delete, чтобы отправить ее как удалениезапрос, а не пост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...