gpt4 book ai didi

javascript - 如果值存在,如何避免将字段设置为空字符串

转载 作者:行者123 更新时间:2023-12-03 00:24:05 25 4
gpt4 key购买 nike

我正在开发我的第一个 Node.js 应用程序,我需要一些帮助。

我使用 MongoDb 作为数据库。

在我的应用程序中,我创建了一个(注册)方法,该方法读取用户输入(例如电子邮件和密码)并设置其他字段,例如名字姓氏 为空字符串。

exports.postSignup = (request, response, next) => {
const email = request.body.email;
const password = request.body.password;
const fonfirmPassword = request.body.confirmPassword;
User.findOne({ email: email })
.then(userDoc => {
if (userDoc) {
request.flash('error', 'Email already exists, please pick another!')
return response.redirect('/auth/signup');
}
return bcrypt.hash(password, 12)
.then(hashedPassword => {
const user = new User({
firstName: '',
lastName: '',
email: email,
photoUrl: '',
password: hashedPassword,
cart: { items: [] }
})
return user.save();
})
.then(result => {
response.redirect('/auth/login');
const signup = {
to: email,
from: 'support@company.com',
templateId: keys.SIGNUP_TEMPLATE_ID,
dynamic_template_data: {
subject: 'Signup succeeded successfully!',
},
};
sgMail.send(signup);
})
.catch(err => {
console.log(err);
});
})
.catch(err => {
console.log(err);
});
};

上面的代码工作正常...用户登录其帐户后,该用户可以导航到其个人资料页面并设置其名字姓氏,如附件中所示图片。

enter image description here

因此,我创建了另一种方法,允许用户设置他们的名字姓氏照片网址

exports.postAddProfile = (request, response, next) => {
const firstName = request.body.firstName;
const lastName = request.body.lastName;
const photoUrl = request.body.photoUrl;

User.findOne({ userId: request.user.userId })
.then(user => {
user.firstName = firstName;
user.lastName = lastName;
user.photoUrl = photoUrl;
return user.save();
})
.then(result => {
console.log('Added Profile Info');
response.redirect('/');
})
.catch(err => {
console.log(err)
});
};

此代码也可以正常工作,但问题是如果用户将其名字姓氏照片网址设置为第一次喜欢(Jonas、Jsk 和 https://photourl.com)然后第二次,如果用户仅更改名字,则姓氏照片网址再次设置为空字符串。

如何避免这种情况?

最佳答案

空字符串在 JS 中是错误的,因此只需检查 response 的值是否不是空字符串:

User.findOne({ userId: request.user.userId })
.then(user => {
user.firstName = firstName ? firstName : user.firstName;
user.lastName = lastName ? lastName : user.lastName;
user.photoUrl = photoUrl ? photoUrl : user.photoUrl;
return user.save();
})

关于javascript - 如果值存在,如何避免将字段设置为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com