Javascript 使用get()将数据从node.js发送到angular
我想用Javascript 使用get()将数据从node.js发送到angular,javascript,node.js,angular,express,get,Javascript,Node.js,Angular,Express,Get,我想用angular从node.js文件中检索数据(数组)。 我尝试了我的node.js文件: app.get('/search', function(req, res){ res.send(data); }); 我很难在角度上找到它。 我创建了一个服务: data: any; getDictionnary(): Observable<String[]> { var dataGet = this.http.get('/search').pipe(map(data
angular
从node.js
文件中检索数据(数组)。
我尝试了我的node.js
文件:
app.get('/search', function(req, res){
res.send(data);
});
我很难在角度上找到它。
我创建了一个服务:
data: any;
getDictionnary(): Observable<String[]> {
var dataGet = this.http.get('/search').pipe(map(data => this.data=data.json()));
console.dir(dataGet);
return dataGet;
};
ngOnInit() {
this.data = this.getDictionnary();
}
你需要订阅可观察的
let observable: Observable<Response> = this.http.get('/search',requestOptions);
observable.subscribe((response: Response) => {
let responseData: any = response.arrayBuffer().byteLength > 0 ? response.json() : {};
});
let observable:observable=this.http.get('/search',requestOptions);
可观察。订阅((响应:响应)=>{
让responseData:any=response.arrayBuffer().ByTeleLength>0?response.json():{};
});
试试这个
data: any;
getDictionnary(): Observable<String[]> {
return this.http.get('/search').pipe(map(data => this.data=data.json()));
};
ngOnInit() {
this.getDictionnary().subscribe((response) => {
this.data = response;
});
}
数据:任意;
getDictionnary():可观察{
返回this.http.get('/search').pipe(map(data=>this.data=data.json());
};
恩戈尼尼特(){
this.getDictionnary().subscribe((响应)=>{
这个数据=响应;
});
}
您可以尝试以下解决方案:
在HttpService中:
import { Injectable } from '@angular/core';
import {
HttpClient,
HttpErrorResponse,
HttpHeaders
} from '@angular/common/http';
import { Observable , Subject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class HttpService {
constructor(private httpClient: HttpClient) {
}
getData(url,body, options): Observable<any>{
return this.httpClient.get(url, options);
}
}
我假设(从
res.send
)您正在使用ExpressJS?如果是,请贴上标签。另外,运行角度代码的页面是否与/search
相同?(使用相对路径表示“是”,但…)我在您的案例中使用过,您在angular get方法中没有使用正确的路径我希望页面上有数据http://localhost:4200/search
所以在get中我必须放置'/search'就是这样吗?app.get('/search',function(req,res){console.log(data)res.send(data);});代码>像这样。我试过这个,但还是一样。我在我的服务中创建了一个简单的Display()?请用console.log()更新答案我只知道我的对象是可观察的你可以添加后端发送的json响应我没有json但我添加了控制台中的内容我如何在get()中写入选项?这里选项是请求的额外参数,如:选项={headers:newhttpheaders({“Authorization”:“Bearer”+this.session.get(“access_token”),“Content Type”:“application/json”})
import { Injectable } from '@angular/core';
import {
HttpClient,
HttpErrorResponse,
HttpHeaders
} from '@angular/common/http';
import { Observable , Subject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class HttpService {
constructor(private httpClient: HttpClient) {
}
getData(url,body, options): Observable<any>{
return this.httpClient.get(url, options);
}
}
private data: string[] = [];
constructor(private http: HttpService){
this.getDictionnary();
}
getDictionnary(){
this.http.getData(url,options).subscribe((resp:any) => {
this.data = resp.data
}
}