node.js轻松搭建一个服务器
前台获取数据时经常遇见跨域问题,以前一直用nginx做反向代理商。最近在用vuejs,发现webpack-dev-server的代理商简单好用。于是仿照写了一个简单的web服务器,用于非webpack的项目。
1 const request = require('request'); 2 const express = require('express'); 3 const path = require('path'); 4 5 const app = express(); 6 7 const proxyTable = { 8 '/wcf': { 9 target: '10 }11 };交流学习圈58273593612 13 app.use(function(req, res,next) {14 const url = req.url;15 if (req.method == 'OPTIONS') {16 console.log('options_url: ', url);17 18 // res.header("Access-Control-Allow-Origin", req.headers.origin || '*');19 // res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");20 // res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");21 22 // res.header("Access-Control-Allow-Credentials", true);23 24 res.status(200).send('OK');25 return;26 } 27 28 // console.log('req_url: ', url);29 next();30 });31 32 交流学习圈58273593633 app.use(express.static(path.join(__dirname, 'static')));34 35 app.use('/', function(req, res) {36 const url = req.url;37 const proxy = Object.keys(proxyTable);38 let not_found = true; 39 for (let index = 0; index < proxy.length; index++) {40 const k = proxy[index];41 const i = url.indexOf(k);42 if (i >= 0) { 43 not_found = false;44 const element = proxyTable[k];45 const newUrl = element.target + url.slice(i+k.length);46 req.pipe(request({url: newUrl, timeout: 60000},(err)=>{47 if(err){48 console.log('error_url: ', err.code,url);49 res.status(500).send('');50 } 51 })).pipe(res);52 break;53 } 54 }55 if(not_found) {56 console.log('not_found_url: ', url);57 res.status(404).send('Not found');58 } else {59 console.log('proxy_url: ', url);60 }61 });62 交流学习圈58273593663 const PORT = 8080;64 app.listen(PORT, () => {65 console.log66 });说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » node.js轻松搭建一个服务器
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » node.js轻松搭建一个服务器