![](/img/trans.png)
[英]How to update a record based on the primary key PUT method Express node.js
[英]How to use method put on node.js with express for update info
我正在嘗試使用帶有 express 和 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);
您需要使用 PUT 方法而不是 POST。 要使用 PUT,您需要首先安裝方法覆蓋模塊,這可以通過... npm install method-override --save 來完成。
BodyParser 不適用於圖像上傳,因此請確保您的server.js 中有例如multer :
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
然后只需按照他們的頁面,例如這樣做:
router.post('/edit/:id', upload.array(), controller.saveEditProject);
這里的關鍵是使用處理圖像的解析器。 您在 Jade 表單中具有以下屬性:
enctype="multipart/form-data"
這就是“禁用” BodyParser 的原因,因為它不會解釋它。 如果你把它拿出來,你會看到 BodyParser 正在工作。
PS:很抱歉現在沒有給你更詳細的答案,這是我目前可以給你的:) 不過他們的頁面非常好,我相信你會很容易找到解決方案!
快樂編碼!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.