이 기사의 내용은 nodejs를 사용하여 웹 서버를 구축하는 방법에 관한 것입니다. 참고할만한 가치가 있습니다. 도움이 될 수 있기를 바랍니다.
프런트 엔드에서는 데이터를 얻을 때 도메인 간 문제가 자주 발생합니다. 이 문제는 nginx를 역방향 프록시로 사용하여 해결할 수 있습니다. 그러나 nginx는 미들웨어 프록시이며 개발자마다 배포하는 웹 서버 주소가 다를 수 있으므로 nginx 구성이 보편적일 수는 없습니다.
클라이언트 프록시를 갖고 이를 프로젝트 소스 코드와 함께 제출할 수 있다면 여러 개발자를 위한 프록시 구성이 필요하지 않을 수 있습니다. webpack-dev-server는 그런 클라이언트 프록시인데, 해당 프로젝트에서 webpack을 사용하지 않는다면 사용할 방법이 없습니다. Webpack이 아닌 프로젝트를 위한 간단한 웹 서버를 모방하고 작성할 수 있습니까? 아래 코드는 여러분이 저를 비판하고 고쳐주셨으면 좋겠습니다.
const request = require('request'); const express = require('express'); const path = require('path'); const app = express(); // 代理配置 const proxyTable = { '/api': { target: 'http://localhost/api' } }; app.use(function(req, res,next) { const url = req.url; if (req.method == 'OPTIONS') { console.log('options_url: ', url); // 设置cors 跨域 // res.header("Access-Control-Allow-Origin", req.headers.origin || '*'); // res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); // res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); // 设置 cookie // res.header("Access-Control-Allow-Credentials", true); res.status(200).send('OK'); return; } // console.log('req_url: ', url); next(); }); // 设置静态目录 app.use(express.static(path.join(__dirname, 'static'))); app.use('/', function(req, res) { const url = req.url; const proxy = Object.keys(proxyTable); let not_found = true; for (let index = 0; index < proxy.length; index++) { const k = proxy[index]; const i = url.indexOf(k); if (i >= 0) { not_found = false; const element = proxyTable[k]; const newUrl = element.target + url.slice(i+k.length); req.pipe(request({url: newUrl, timeout: 60000},(err)=>{ if(err){ console.log('error_url: ', err.code,url); res.status(500).send(''); } })).pipe(res); break; } } if(not_found) { console.log('not_found_url: ', url); res.status(404).send('Not found'); } else { console.log('proxy_url: ', url); } }); // 监听端口 const PORT = 8080; app.listen(PORT, () => { console.log('HTTP Server is running on: http://localhost:%s', PORT); });
PS: 정적은 정적 페이지를 넣습니다
위 내용은 nodejs로 웹서버를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!