我试图向我的服务器发出http POST
请求,但无法处理结果。
register.component.ts
export class RegisterComponent implements OnInit {
constructor(private router: Router, private userService: UserService) { }
ngOnInit() {}
register(username: string, password: string, email: string) {
const user = new User(username, password, email);
this.userService.create(user);
}
user.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
@Injectable()
export class UserService {
constructor(private http: HttpClient) { }
create(user: User) {
return this.http.post('http://localhost:3000/register', user)
.subscribe( res =>
console.log(res)
);
}
}
编辑 res
是语法错误意外的输入结束
我总是在数据库中创建一个新用户。
以下是使用Node
编写的Express
和typescript
实现的服务器逻辑
register(req: Request, res: Response, next: NextFunction) {
const user = new User(req.body);
User.findOne({ username: user.username }, (err, result: IUserModel) => {
if (err) { next(); }
if(result === null) {
//success to register
user.save( );
res.sendStatus(201);
next();
} else {
res.status(401).send('username is taken');
}
});
}
我认为问题出在服务器端。我尝试以json
格式发送不同的回复,但仍然没有。
我发现问题来自于触发register
的html代码。