如何使用方法放在node.js与快递更新信息

我试图创build一个带有快捷和mongoose的nodejs的CRUD,当我尝试从窗体更新内容时,这个空的所有寄存器,当我用POST方法。 这里是我的代码:

玉模板

extends ../includes/layout block content div(class="wrap") include ../includes/header div(class="column-group vertical-space") div(class="all-50 push-center") div(class="all-100") h1 #{title} div(class="all-100") form(role="form" method="post" action="#{project.id}" enctype="multipart/form-data") div(class="all-50") h3 Cambiar nombre a #{project.ProjectName} input(type="text" name="projectName" required) p Cambiar detalles textarea(name="details") p Cambiar precio input(type="number" name="ammount") p Cambiar localización input(type="text" name="localize") div(class="all-50") p Cambiar Imágen input(type="file" name="image" multiple) //p #{plane} //input(type="file" name="plane") div(class="all-100") button(type="submit") Enviar div(class="push") include ../includes/footer 

调节器

 saveEditProject : function (req, res, file){ Project.findById(req.params.id, function(err, project){ if(!project){ res.redirect('/project'); } project.ProjectName = req.body.projectName; project.ProjectDetails = req.body.details; project.ProjectAmount = req.body.ammount; project.ProjectLocation = req.body.localize; project.ProjectFileName = req.body.image; project.save(function (err) { if (err) { res.send("not now"); } res.redirect('/project'); }); }); }, 

路线

 router.post('/edit/:id', controller.saveEditProject); 

BodyParser并不意味着图像上传,所以请确保你有例如在你的server.js Muller

 var multer = require('multer') var upload = multer({ dest: 'uploads/' }) 

然后,只需按照他们的页面,例如做到这一点:

 router.post('/edit/:id', upload.array(), controller.saveEditProject); 

这里的关键是使用处理图像的parsing器。 你在Jade中有以下属性:

 enctype="multipart/form-data" 

这是“禁用”BodyParser,因为它不会解释它。 如果你把它拿出来,你会看到BodyParser工作。

PS:对不起,现在不给你一个更详细的答案,这是我可以给你在这个时候:)他们的网页是非常好的,但我相信你会很容易find解决scheme!

快乐的编码!