如何拉状态响应代码从后端并在前端使用?
我试图从在Node.js的我的前端后端这是角,以显示“电子邮件已存在”的错误消息发送状态响应代码。
// 前端
add.userponent.ts
if (this.AddUserForm.valid) {
this.AuthService.register(this.AddUserForm.value)
.pipe(first())
.subscribe(
data => {
this.router.navigate(['dashboard/user']);
this.snackbar.open('User has been Added', 'Close', {
duration: 3000,
});
},
error => {
this.loading = false;
this.snackbar.open('Unsuccessful', 'Close', {
duration: 3000,
});
},
);
}
authentication.service.ts
register(user: User) {
// const headers = new HttpHeaders({ 'Authorization': JSON.parse(localStorage.getItem('currentUser')).token });
return this.http.post<any>(`${this.environment.userUrl}/auth/register`, user);
}
//后端
authentication.js
exports.register = function (req, res, next) {
var email = req.body.email;
var password = generator.generate({
length: 10,
numbers:true,
uppercase:true,
symbols: true
});
if (!email) {
return res.status(422).send({
error: 'You must enter an email address'
});
}
User.findOne({
email: email
}, function (err, existingUser) {
if (err) {
return next(err);
}
if (existingUser) {
return res.status(422).send({
error: 'That email address is already in use'
});
}
var user = new User({
email: email,
password: password,
});
user.save(function (err, user, done) {
if (err) {
return next(err);
}
var userInfo = setUserInfo(user);
res.status(201).json({
message: 'Please Check you Email Address',
token: 'JWT ' + generateToken(userInfo),
user: userInfo
});
响应代码需要从后端发送到我的前端。在这里,在这种情况下,响应状态代码422需要被发送到我的前端
回答如下:在响应对象,你可以添加statuCode值。
if (existingUser) {
return res.status(422).send({
error: 'That email address is already in use',
statusCode: 422
});
}