我已经建立了一个登录和注册系统。但是关于用户个人资料照片存在问题。如果用户不想添加个人资料照片,则该用户的个人资料照片将为空。但是我得到一个错误。
这是我的user.js的个人资料部分
profile:{
type: String,
}
这是我报名的相关帖子。
let user= new User({
username: req.body.username,
email: req.body.email,
password: hashedPassword,
profile: req.file.path.replace(/^public/, '')
});
最后这是我的register.pug:
.file-field.input-field(method="post")
.btn.grey
label Profile Photo
input(name='profile', type='file', enctype="multipart/form-data")
但是当我确实提交但未选择任何个人资料照片时,出现以下错误:
(节点:26436)UnhandledPromiseRejectionWarning:TypeError:无法读取 未定义的属性“路径”
但是为什么会这样呢?我已经取消了不需要的个人资料照片。那么,如果我不想上传个人资料照片,为什么还要搜索路径?
答案 0 :(得分:1)
您可以在将req.file设置到用户对象上之前验证是否存在req.file,如果没有,请将其设置为空字符串
let user= new User({
username: req.body.username,
email: req.body.email,
password: hashedPassword,
profile: req.file ? req.file.path.replace(/^public/, '') : ""
});