输入

时间:2018-01-04 21:53:13

标签: node.js angular http post

我试图向我的服务器发出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编写的Expresstypescript实现的服务器逻辑

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代码。

0 个答案:

没有答案