我使用Node(Passport.js)和mongoDB执行了用户身份验证。它运作良好。
现在我正在添加角度作为前端。
我将用户凭据从angular发布到节点api以获取响应,因为"成功"或"失败"但没有得到任何回应。
以下是代码:
ANGULAR PART:
app.component.html:
<form #loginForm="ngForm" (ngSubmit)="onSubmit(loginForm)">
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" ngModel>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" name="password" ngModel>
</div>
<div class="form-group">
<button type="submit">Submit</button>
</div>
</form>
app.component.ts:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from
'@angular/forms';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(private httpClient: HttpClient) {};
onSubmit(loginForm) {
console.log(loginForm.value);
let url = 'http://localhost:8080/login';
this.httpClient.post(url, {loginForm(loginForm)},{responseType:
'text'}).subscribe(res => console.log(res));
}
}
NODE PART:
routes.js:
app.post('/login', passport.authenticate('local-login', function (err,user) {
if(err) {
return err;
}
if(!user) {
return 0;
} else {
return user;
}
}));
passport.js:
passport.use('local-login', new LocalStrategy({
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true
},
function(req, email, password, done) {
var newUser = new User();
User.findOne({ 'email' : email}, function(err, user) {
if (err) {
return done(err);
}
if (!user || !newUser.validatePassword(req.body.password,
user.password)) {
return done(null, false);
}
return done(null, user);
});
}));
现在来自angular的请求转到节点api&#34; http://localhost:8080/login&#34;但我没有从节点方面得到任何回复。
需要别人的帮助来解决这个问题。
提前致谢。