用户个人资料照片

时间:2020-06-19 15:15:27

标签: node.js mongodb path multer

我已经建立了一个登录和注册系统。但是关于用户个人资料照片存在问题。如果用户不想添加个人资料照片,则该用户的个人资料照片将为空。但是我得到一个错误。

这是我的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:无法读取 未定义的属性“路径”

但是为什么会这样呢?我已经取消了不需要的个人资料照片。那么,如果我不想上传个人资料照片,为什么还要搜索路径?

1 个答案:

答案 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/, '') : ""
});