Я использую Angular 6 и хочу заполнить форму сразу после загрузки страницы, она никогда не опустеет и ее можно будет отправить в любое время.
В моей форме у меня есть двусторонняя привязка
first name <input type="text" id="firstname" [(ngModel)]="firstname" name="firstname" >
в компоненте у меня
ngOnInit() {
this.profileService.getProfile(this.user_id).subscribe((data) =>{
if(data.success){
this.firstname = data.firstname;
})
}
Итак, как только страница загружается, я заполняю форму, и из-за двусторонней привязки форма никогда не становится пустой (если пользователь не удаляет все намеренно, в этом случае угловые проверки на наличие пустых полей и не Отправить. ). Таким образом, пользователь может отправить его в любое время, когда захочет.
В сервисе функция getProfile
равна
createAuthorizationHeader(headers: Headers) {
headers.append('Authorization', this.token);
headers.append('Content-Type','application/json');
}
getProfile(user_id){
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.get('http://localhost:3000/profile/'+user_id, {headers:headers}).pipe(map(res => res.json()));
}
Моя проблема в том, что node.js говорит в консоли Error: Can't set headers after they are sent.
каждый раз, когда я обновляюсь.
Это из-за моего кода и возможности постоянной отправки в любое время? Как я могу это исправить? Я должен иметь возможность устанавливать одни и те же заголовки один раз и использовать их при каждом будущем вызове getProfile
. Я пробовал что-то вроде
createAuthorizationHeader(headers: Headers) {
headers.append('Authorization', this.token);
headers.append('Content-Type','application/json');
}
let headers = new Headers();
this.createAuthorizationHeader(headers);
getProfile(user_id){
return this.http.get('http://localhost:3000/profile/'+user_id, {headers:headers}).pipe(map(res => res.json()));
}
но тогда угловой говорит 'return' outside of function
о getProfile
.
Маленькая помощь здесь?
Спасибо
EDIT
Из точки узла, это маршрут, по которому я проложил угловой
router.get('/:userid', validate.required(), (req, res)=>{
user.query('select firstname from user WHERE id = $1', [req.params.userid])
.then((resolved)=>{
res.json({success:true, data:data });
})
.catch((error)=>{
res.json({success:false, msg:errorvalue});
});
});
и это промежуточное ПО validate
1040 *
exports.required = ()=>{
return (req, res,next)=>{
const token = req.get('Authorization');
const key = config.key;
jwt.verify(token, key,function(err, decoded) {
if (err){res.json({redirect:true});}
if (decoded){
let dateNow = Math.floor(Date.now() / 1000);
if (dateNow > decoded.exp){res.json({redirect:true});}
next();
}
else {res.json({redirect:true});}
});
}
}