情況描述:
1.整體就是一個Angular項目從Node.js后臺讀取數(shù)據(jù)的小例子;
2.Angular項目 與 Nodeserver文件夾在同一個硬盤的不同文件夾;
3.Angular項目端口4200,Node.js端口 8000,所以會有一個配置指向;
3.在瀏覽器里單獨訪問node.js的數(shù)據(jù)可以顯示,angular訪問就找不到了。
搜了一下,應(yīng)該是請求跨域的問題。
答案:
啟動服務(wù)的時候必須用npm run start啟動,代理才生效,如果用ng serve啟動代理不生效
Angular 項目 TS:
import { Component, OnInit } from '@angular/core';
import {Observable} from "rxjs";
import {Http} from "@angular/http";
import 'rxjs/Rx';
@Component({
selector: 'app-product',
templateUrl: './product.component.html',
styleUrls: ['./product.component.css']
})
export class ProductComponent implements OnInit {
dataSource: Observable<any>;
products: Array<any> = [];
constructor(private http: Http) {
this.dataSource =this.http.get('/api/products').map((res) => res.json());
}
ngOnInit() {
this.dataSource.subscribe(
(data) => this.products =data
);
}
}
Angular package.json 配置:
"start": "ng serve --proxy-config proxy.conf.json",
Angular proxy.conf.json 配置:
{
"/api":{
"target":"http://localhost:8000"
}
}
Node.js服務(wù)器端 auction_server.ts:
import * as express from 'express';
const app = express();
export class Product {
constructor(
public id: number,
public title: string,
public price: number,
public rating: number,
public desc: string,
public categories: Array<string>) {
}
}
const products: Product[] = [
new Product(1, '第一個商品', 1.99, 3.5, '這是第一個商品,是我在',['圖書1']),
new Product(2, '第二個商品', 1.99, 3.5, '這是第一個商品,是我在',['美食2']),
new Product(3, '第三個商品', 1.99, 3.5, '這是第一個商品,是我在',['玩具3']),
new Product(4, '第四個商品', 1.99, 3.5, '這是第一個商品,是我在',['設(shè)計4']),
new Product(5, '第五個商品', 1.99, 3.5, '這是第一個商品,是我在',['旅游5']),
new Product(6, '第六個商品', 1.99, 3.5, '這是第一個商品,是我在',['工作6'])
];
app.get('/',(req,res) => {
res.send("Hello Express!!!");
});
app.get('/api/products',(req, res) => {
res.json(products);
});
app.get('/api/product/:id',(req, res) => {
res.json(products.find((product) => product.id == req.params.id));
});
const server = app.listen(8000,"localhost", () => {
console.log("服務(wù)器已啟動,地址是:http://localhost:8000");
});
單獨通過瀏覽器訪問正常顯示:
Angular 找不到數(shù)據(jù):
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。