node搭建跨域

有node環(huán)境坚俗,進(jìn)入項(xiàng)目根目錄? ? ?創(chuàng)建兩個(gè)文件? proxy.js? main.js

npm install http-proxy --save-dev

var PORT = 3000;

var http = require('http');

var url = require('url');

var fs = require('fs');

var mine = require('./mine').types;

var path = require('path');

var httpProxy = require('http-proxy');

var proxy = httpProxy.createProxyServer({

target: 'http://dev-web.xzjcloud.com/', //接口地址

// http://java.winfreeinfo.com/

// 下面的設(shè)置用于https

// ssl: {

//? ? key: fs.readFileSync('server_decrypt.key', 'utf8'),

//? ? cert: fs.readFileSync('server.crt', 'utf8')

// },

// secure: false

// '/api':{

// target: 'http://java.winfreeinfo.com/',

// },

// '/baidu':{

// target: 'http://www.baidu.com/',

// },

});

/****************************/

/****************************/

proxy.on('error', function(err, req, res) {

res.writeHead(500, {

'content-type': 'text/plain'

});

console.log(err);

res.end('Something went wrong. And we are reporting a custom error message.');

});

var server = http.createServer(function(request, response) {

/****************************8/

*

*

*

*/

var pathname = url.parse(request.url).pathname;

//var realPath = path.join("main-pages", pathname); // 指定根目錄

var realPath = path.join("./", pathname);

console.log(pathname);

console.log(realPath);

var ext = path.extname(realPath);

ext = ext ? ext.slice(1) : 'unknown';

console.log("********" + pathname)

//判斷如果是接口訪問丁存,則通過proxy轉(zhuǎn)發(fā)

if(pathname.indexOf(".") < 0) {

proxy.web(request, response);

return;

}

// if(pathname.indexOf()!=undefined){

//? ? ? proxy.web(request, response);

//? return;

// }

fs.exists(realPath, function(exists) {

if(!exists) {

response.writeHead(404, {

'Content-Type': 'text/plain'

});

response.write("This request URL " + pathname + " was not found on this server.");

response.end();

} else {

fs.readFile(realPath, "binary", function(err, file) {

if(err) {

response.writeHead(500, {

'Content-Type': 'text/plain'

});

response.end(err);

} else {

var contentType = mine[ext] || "text/plain";

response.writeHead(200, {

'Content-Type': contentType

});

response.write(file, "binary");

response.end();

}

});

}

});

});

server.listen(PORT);

console.log("Server runing at port: " + PORT + ".");

這個(gè)是proxy.js? 設(shè)置轉(zhuǎn)發(fā)的js文件

以下為main.js是類型

exports.types = {

? "css": "text/css",

? "gif": "image/gif",

? "html": "text/html",

? "ico": "image/x-icon",

? "jpeg": "image/jpeg",

? "jpg": "image/jpeg",

? "js": "text/javascript",

? "json": "application/json",

? "pdf": "application/pdf",

? "png": "image/png",

? "svg": "image/svg+xml",

? "swf": "application/x-shockwave-flash",

? "tiff": "image/tiff",

? "txt": "text/plain",

? "wav": "audio/x-wav",

? "wma": "audio/x-ms-wma",

? "wmv": "video/x-ms-wmv",

? "xml": "text/xml",

? "woff": "application/x-woff",

? "woff2": "application/x-woff2",

? "tff": "application/x-font-truetype",

? "otf": "application/x-font-opentype",

? "eot": "application/vnd.ms-fontobject"

};

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俊啼,一起剝皮案震驚了整個(gè)濱河市模她,隨后出現(xiàn)的幾起案子努潘,更是在濱河造成了極大的恐慌垃沦,老刑警劉巖客给,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肢簿,居然都是意外死亡靶剑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門池充,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抬虽,“玉大人,你說我怎么就攤上這事纵菌〔郏” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵咱圆,是天一觀的道長笛辟。 經(jīng)常有香客問我功氨,道長,這世上最難降的妖魔是什么手幢? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任捷凄,我火速辦了婚禮,結(jié)果婚禮上围来,老公的妹妹穿的比我還像新娘跺涤。我一直安慰自己,他們只是感情好监透,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布桶错。 她就那樣靜靜地躺著,像睡著了一般胀蛮。 火紅的嫁衣襯著肌膚如雪院刁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天粪狼,我揣著相機(jī)與錄音退腥,去河邊找鬼。 笑死再榄,一個(gè)胖子當(dāng)著我的面吹牛狡刘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播困鸥,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼颓帝,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了窝革?” 一聲冷哼從身側(cè)響起购城,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虐译,沒想到半個(gè)月后瘪板,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漆诽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年侮攀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厢拭。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兰英,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出供鸠,到底是詐尸還是另有隱情畦贸,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站薄坏,受9級(jí)特大地震影響趋厉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胶坠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一君账、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沈善,春花似錦乡数、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至澈侠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間埋酬,已是汗流浹背哨啃。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留写妥,地道東北人拳球。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像珍特,于是被迫代替她去往敵國和親祝峻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 文件目錄下創(chuàng)建 http.js為服務(wù)器設(shè)置文件 var PORT = 3000;// var http = req...
    程序猿吳彥祖閱讀 335評(píng)論 0 0
  • 好開心扎筒!今天學(xué)會(huì)了搭建服務(wù)端莱找。應(yīng)對(duì)那些接口還未開發(fā)出來,需要調(diào)取數(shù)據(jù)的應(yīng)用嗜桌,總是寫死在移動(dòng)端的數(shù)據(jù)覺得很low奥溺,所...
    霸道總裁跟班閱讀 524評(píng)論 0 0
  • 個(gè)人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)骨宠。如有錯(cuò)誤歡迎斧正 目錄 簡書好像不支持錨點(diǎn)浮定、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,449評(píng)論 1 37
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,095評(píng)論 0 3
  • Node.js Stream(流) Stream 是一個(gè)抽象接口,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口层亿。例如桦卒,對(duì)h...
    FTOLsXD閱讀 597評(píng)論 0 2