let emptyErr = []
if (!(req.files || req.files.image)) {
emptyErr[0] = ('An image banner is required for a post!')
}
else if (!req.body.title) {
emptyErr[1] = ('A title is required for a post.')
}
else if (!req.body.body) {
emptyErr[2] = ('Content is required for a post.')
}
else if (emptyErr.length > 0) {
req.flash('validationErrors', emptyErr)
res.redirect('/post/new')
}
let image = req.files.image
如果我將表單完全留空,它應該檢查每個 if 陳述句并在頂部的陣列中添加一個字串。然后它會檢查陣列中是否有任何元素并重定向到不同的頁面,從而終止腳本。但相反,它只是跳過 if 陳述句,然后抱怨req.files.image為空。如果它為空,它將觸發第一個 if 陳述句,向陣列添加一個元素并命中最后一個 if 陳述句。我不太確定為什么會發生這種情況以及我做錯了什么。
uj5u.com熱心網友回復:
You want if not else if
通過做你所做的,javascript 不會進入 else if 或 else if 如果父 if 或 if one else if 匹配條件。
let emptyErr = []
if (!(req.files || req.files.image)) {
emptyErr.push('An image banner is required for a post!')
}
if (!req.body.title) {
emptyErr.push('A title is required for a post.')
}
if (!req.body.body) {
emptyErr.push('Content is required for a post.')
}
if (emptyErr.length > 0) {
req.flash('validationErrors', emptyErr)
res.redirect('/post/new')
}
let image = req.files.image
也使用 .push() 在陣列中添加一些東西,否則如果一個不正確,你將有一個不正確的陣列,因為索引將為空。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453169.html
標籤:javascript 节点.js 表示
上一篇:SocketIO顫動未連接
