2016-05-03 2 views
0

Мой код удаления не работает, и я думаю, что даже не стрелял, поскольку я не вижу свой console.log, у меня есть кнопка добавления, которая работает с формой, и они выглядите одинаково, вот почему я этого не понимаю.Jade + mongodb + express.js, delete form not working

app.js:

var db = monk('localhost:27017/mongodb'); 

Джейд:

extends admin_menu 

block content 
    h1. 
     Cocktail list 
    ul 
     each cocktail, i in cocktaillist 
      li 
       p= cocktail.name 
      form#form_delete_project(name="/admin/delete_cocktail", method="post", action="/admin/delete_cocktail") 
      input#input_name(type="hidden", placeholder="", name="_id", value="#{cocktail._id}") 
      button#submit_project(type="submit") delete 

index.js:

router.post('/admin/delete_cocktail', function(req, res) { 
    console.log(id) 
    // Set our internal DB variable 
    var db = req.db; 

    // Get our form values. These rely on the "name" attributes 
    var id = req.body._id; 

    // Set our collection 
    var collection = db.get('cocktailcollection'); 

    // Submit to the DB 
    collection.remove({ 
     "_id":id 

    }, function (err, doc) { 
     if (err) { 
      // If it failed, return error 
      res.send("There was a problem removing the information to the database."); 
     } 
     else { 
      // And forward to success page 
      res.redirect("/admin/cocktail_list"); 
     } 
    }); 
}); 
+0

Вы используете утилиту 'body-parser' midddleware? В терминале, где вы запустили сервер узлов, вы можете увидеть запрос POST? – Komo

+0

Да, я использую body-parser, нет. Я ничего не вижу на сервере узлов. – Sunkhern

ответ

1

Джейд построен на отступа. Поскольку вы не отступаете от элементов в своей форме, это не в вашей форме. В HTML код будет выглядеть следующим образом:

<form> 
</form> 
<input name="_id"> 
<button> 

Поскольку ваш вход с _id находится вне формы оно не публикуемую. Вот почему ваш консольный журнал ничего не показывает. Нет req.body._id. И, конечно, ваша кнопка отправки также находится вне формы. Так оно и не делает.

Итак, первое, что вам нужно сделать, - это отступы от кода.

+0

Спасибо, забыли, что система отступа, но новая для этого! Итак, теперь я запускаю событие, но оно не улавливает отправленный id – Sunkhern

+0

Я сам скорректировал, у меня есть ID с var id = req.body._id – Sunkhern