【发布时间】:2019-03-05 14:26:01
【问题描述】:
我正在尝试从输入字段向 api 发布数据 - 但我收到此错误 - 不允许用户。
HttpResponseError - username is not allowed
如果我尝试像这样注释掉代码
user.add.component.ts
this.addForm = this.formBuilder.group({
name: ['', Validators.required],
/*username: ['', Validators.required],
email: ['', Validators.compose([
Validators.required,
Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')
])], */
});
如果我只留下一个输入 - 名称,那么它会被发布并正常工作。
service.ts
createUser(us:user):Observable<user[]>{
return this.http.post<user[]>(this.apiUrl, us)
}
express.js api
app.post('/api/users', (req, res) => {
const schema = {
name: Joi.string().min(3).required(),
};
const { error } = validateUser(req.body);
if (error) return res.status(400).send(error.details[0].message);
console.log('---------------', req.body.name);
const user = {
id: users.length + 1,
name: req.body.name,
Username:req.body.username,
Email:req.body.email
};
users.push(user);
res.send(user);
});
所以我不确定是否有角formGroup错位的东西 或我的 express.js api。
【问题讨论】:
-
validateUser的分享代码 -
方法
validateUser在服务器端。validateUser返回错误,这就是为什么我想看看里面有什么 -
谢谢Vadi,我查看了那个方法,发现了问题。
标签: angular forms http post request