[NODEJS] 간단한 웹 서버로 Node.js를 사용
NODEJS간단한 웹 서버로 Node.js를 사용
해결법
-
1.간단한 Node.js를 서버는 단지입니다 :
간단한 Node.js를 서버는 단지입니다 :
$ npm install http-server -g
이제 다음 명령을 통해 서버를 실행할 수 있습니다 :
$ cd MyApp $ http-server
당신이 NPM 5.2.0 이상을 사용하는 경우, 당신은 NPX로를 설치하지 않고 HTTP 서버를 사용할 수 있습니다. 이것은 생산에 사용하지 않는 것이 좋습니다 있지만, 빨리 로컬 호스트에서 실행중인 서버를 얻을 수있는 좋은 방법입니다.
$ npx http-server
또는, 당신은 당신의 웹 브라우저를 열고 CORS 요청을 가능하게하는이 시도 할 수 있습니다 :
$ http-server -o --cors
추가 옵션을 보려면 GitHub의에 HTTP 서버, 또는 실행에 대한 문서를 체크 아웃 :
$ http-server --help
다른 좋은 기능과 NodeJitsu에 뇌사 단순 배포 많아요.
기능 포크
물론, 당신은 쉽게 자신의 포크 특징을 위로 할 수 있습니다. 당신은 이미이 프로젝트의 기존 800 포크 중 하나를 해본 적이 찾을 수 있습니다 :
빛 서버 :는 자동 새로 고침 대안
HTTP 서버에 대한 좋은 대안은 빛 서버입니다. 이 파일 관찰 및 자동 상쾌하고 많은 다른 기능을 지원합니다.
$ npm install -g light-server $ light-server
Windows 탐색기에서 디렉토리 컨텍스트 메뉴에 추가
reg.exe add HKCR\Directory\shell\LightServer\command /ve /t REG_EXPAND_SZ /f /d "\"C:\nodejs\light-server.cmd\" \"-o\" \"-s\" \"%V\""
간단한 JSON REST 서버
당신이 프로토 타입 프로젝트에 대한 간단한 REST 서버를 만들 필요가 있다면 JSON 서버 당신이 찾고있는 무슨 수 있습니다.
자동 새로 고침 편집자
대부분의 웹 페이지 편집기와 IDE 툴은 지금은 변경하면 웹 페이지를 새로 고침 소스 파일을보고 자동으로하는 웹 서버를 포함한다.
난 비주얼 스튜디오 코드와 라이브 서버를 사용합니다.
오픈 소스 텍스트 편집기 브래킷은 또한 NodeJS 정적 웹 서버가 포함되어 있습니다. 그냥 눌러 "실시간 미리보기"를 브래킷에있는 HTML 파일을 열고 정적 서버를 시작 페이지로 브라우저를 엽니 다. 브라우저 것이다 ** 자동 새로 고침 할 때마다 편집 및 HTML 파일 저장. 적응 형 웹 사이트를 테스트 할 때 특히 유용합니다. 여러 브라우저 / 창 크기 / 기기에서 HTML 페이지를 엽니 다. HTML 페이지를 저장하고 적응 물건을 모두 자동 새로 고침 그들은으로 작동하는지 즉시 참조하십시오.
폰갭 개발자
하이브리드 모바일 앱을 코딩하는 경우, 당신은 폰갭 팀은 새로운 폰갭 앱 보드에 자동 새로 고침 개념을했습니다 것을 알고 관심이있을 수 있습니다. 이 개발 중에 서버에서 HTML5 파일을로드 할 수있는 일반적인 모바일 응용 프로그램입니다. 당신은 대부분의 시간을 무슨 일을하는지이다 - 당신은 JS / CSS / HTML 파일을 변경하는 경우 지금은 하이브리드 모바일 앱 개발주기의 속도가 느린 컴파일 / 배포 단계를 건너 뛸 수 있기 때문에 이것은 매우 매끄러운 트릭이다. 또한 파일의 변화를 감지하는 (역할을 실행 폰갭) 정적 NodeJS 웹 서버를 제공합니다.
폰갭 + 센차 터치 개발자
지금은 광범위하게 센차 터치 및 jQuery를 모바일 개발자를위한 폰갭의 정적 서버 및 폰갭 개발자 앱을 채택했습니다. 센차 터치 라이브에서 그것을 확인하십시오. QR 코드 --qr 지원하며, 방화벽 외부의 URL에 데스크톱 컴퓨터에서 해당 프록시에게 정적 서버를 --localtunnel! 사용의 톤. 복합 휴대 DEVS위한 대규모 고속화.
코르도바 + 이온 프레임 워크 개발자
로컬 서버와 자동 새로 고침 기능은 이온 성 도구로 구운있다. 그냥 이온 앱 폴더에서 역할을 실행합니다. 더 나은 ... iOS 및 안드로이드 모두의 측면보기로보기 자동 새로 고침 측에 --lab 역할 이온.
-
2.당신은이에 대한 Node.js를 연결하고 ServeStatic을 사용할 수 있습니다 :
당신은이에 대한 Node.js를 연결하고 ServeStatic을 사용할 수 있습니다 :
이제 HTTP에 갈 수 : // localhost를 : 8080 / yourfile.html
-
3.이 요점을 확인하십시오. 내가 참조를 위해 여기를 재현하고 있습니다 만, 요점은 정기적으로 업데이트되었습니다.
이 요점을 확인하십시오. 내가 참조를 위해 여기를 재현하고 있습니다 만, 요점은 정기적으로 업데이트되었습니다.
var http = require("http"), url = require("url"), path = require("path"), fs = require("fs"), port = process.argv[2] || 8888; http.createServer(function(request, response) { var uri = url.parse(request.url).pathname , filename = path.join(process.cwd(), uri); fs.exists(filename, function(exists) { if(!exists) { response.writeHead(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); return; } if (fs.statSync(filename).isDirectory()) filename += '/index.html'; fs.readFile(filename, "binary", function(err, file) { if(err) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(err + "\n"); response.end(); return; } response.writeHead(200); response.write(file, "binary"); response.end(); }); }); }).listen(parseInt(port, 10)); console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");
최신 정보
요점은 핸들 CSS와 JS 파일을 수행합니다. 내가 직접 사용했습니다. "바이너리"모드에서 읽기 / 쓰기를 사용하는 것은 문제가되지 않습니다. 파일은 파일 라이브러리에 의해 텍스트로 해석하고 응답으로 반환 된 콘텐츠 유형 관련이되지 않는다는 것을 단지 의미합니다.
코드의 문제는 항상 "텍스트 / 일반"의 콘텐츠 형식을 반환하는 것입니다. 위의 코드는 콘텐츠 형식을 반환하지 않습니다,하지만 당신은 단지 HTML, CSS 및 JS를 위해 그것을 사용하는 경우, 브라우저는 그 잘을 추론 할 수있다. 어떤 콘텐츠 유형은 잘못된 것보다 낫다.
일반적으로 콘텐츠 형식은 웹 서버의 구성입니다. 따라서이 문제가 해결되지 않는 경우, 미안 해요,하지만 간단한 개발 서버로 나를 위해 일을하고 다른 사람들을 도와 줄 알았는데. 당신이 응답에 올바른 컨텐츠 유형을해야하는 경우, 당신은에 하나 필요 명시 적으로 joeytwiddle이 가지고 그들을 정의하거나 의미있는 디폴트를 가지고 연결과 같은 라이브러리를 사용합니다. 이것에 대해 좋은 점은 단순하고 독립적 인 (종속되지)라는 것이다.
그러나 나는 당신의 문제를 생각 해요. 그래서 여기에 결합 된 솔루션입니다.
var http = require("http"), url = require("url"), path = require("path"), fs = require("fs") port = process.argv[2] || 8888; http.createServer(function(request, response) { var uri = url.parse(request.url).pathname , filename = path.join(process.cwd(), uri); var contentTypesByExtension = { '.html': "text/html", '.css': "text/css", '.js': "text/javascript" }; fs.exists(filename, function(exists) { if(!exists) { response.writeHead(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); return; } if (fs.statSync(filename).isDirectory()) filename += '/index.html'; fs.readFile(filename, "binary", function(err, file) { if(err) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(err + "\n"); response.end(); return; } var headers = {}; var contentType = contentTypesByExtension[path.extname(filename)]; if (contentType) headers["Content-Type"] = contentType; response.writeHead(200, headers); response.write(file, "binary"); response.end(); }); }); }).listen(parseInt(port, 10)); console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");
-
4.당신은 표현이 필요하지 않습니다. 당신은 연결이 필요하지 않습니다. Node.js를 HTTP를 기본적으로 수행합니다. 당신이해야 할 모든 요청에 따라 파일을 반환 할 수 있습니다 :
당신은 표현이 필요하지 않습니다. 당신은 연결이 필요하지 않습니다. Node.js를 HTTP를 기본적으로 수행합니다. 당신이해야 할 모든 요청에 따라 파일을 반환 할 수 있습니다 :
var http = require('http') var url = require('url') var fs = require('fs') http.createServer(function (request, response) { var requestUrl = url.parse(request.url) response.writeHead(200) fs.createReadStream(requestUrl.pathname).pipe(response) // do NOT use fs's sync methods ANYWHERE on production (e.g readFileSync) }).listen(9615)
보장하지만 요청이 액세스 파일이 기본 디렉토리를 아래에, 그리고 수보다 전체 예제는 적절한 오류 처리를 수행합니다
var http = require('http') var url = require('url') var fs = require('fs') var path = require('path') var baseDirectory = __dirname // or whatever base directory you want var port = 9615 http.createServer(function (request, response) { try { var requestUrl = url.parse(request.url) // need to use path.normalize so people can't access directories underneath baseDirectory var fsPath = baseDirectory+path.normalize(requestUrl.pathname) var fileStream = fs.createReadStream(fsPath) fileStream.pipe(response) fileStream.on('open', function() { response.writeHead(200) }) fileStream.on('error',function(e) { response.writeHead(404) // assume the file doesn't exist response.end() }) } catch(e) { response.writeHead(500) response.end() // end the response so browsers don't hang console.log(e.stack) } }).listen(port) console.log("listening on port "+port)
-
5.나는 당신이 지금 놓치고있는 부분은 당신이 보내는 것을 생각 :
나는 당신이 지금 놓치고있는 부분은 당신이 보내는 것을 생각 :
Content-Type: text/plain
당신이 HTML을 렌더링하기 위해 웹 브라우저를 원한다면, 당신은이 작업을하기 위해 변경해야합니다 :
Content-Type: text/html
-
6.1 단계는 (내부 명령 프롬프트 [나는 당신의 폴더에 당신에게 CD를 희망]) : Express를 설치 NPM
1 단계는 (내부 명령 프롬프트 [나는 당신의 폴더에 당신에게 CD를 희망]) : Express를 설치 NPM
2 단계 : 파일 server.js 만들기
var fs = require("fs"); var host = "127.0.0.1"; var port = 1337; var express = require("express"); var app = express(); app.use(express.static(__dirname + "/public")); //use static files in ROOT/public folder app.get("/", function(request, response){ //root dir response.send("Hello!!"); }); app.listen(port, host);
음, 당신은 너무 WATCHFILE (또는 사용 nodemon)를 추가해야 바랍니다. 위 코드는 간단한 연결 서버입니다.
3 단계 : 노드 server.js 또는 nodemon server.js
그냥 호스트 간단한 HTTP 서버를 원하는 경우 더 쉬운 방법은 지금있다. NPM 설치 -g HTTP 서버
우리의 디렉토리를 열고 HTTP 서버를 입력
https://www.npmjs.org/package/http-server
-
7.빠른 방법 :
빠른 방법 :
var express = require('express'); var app = express(); app.use('/', express.static(__dirname + '/../public')); // ← adjust app.listen(3000, function() { console.log('listening'); });
너의 길:
var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { console.dir(req.url); // will get you '/' or 'index.html' or 'css/styles.css' ... // • you need to isolate extension // • have a small mimetype lookup array/object // • only there and then reading the file // • delivering it after setting the right content type res.writeHead(200, {'Content-Type': 'text/html'}); res.end('ok'); }).listen(3001);
-
8.오히려 switch 문을 다루는 것보다, 나는 그것의 깔끔한는 사전에서 콘텐츠 유형을 조회 생각합니다 :
오히려 switch 문을 다루는 것보다, 나는 그것의 깔끔한는 사전에서 콘텐츠 유형을 조회 생각합니다 :
var contentTypesByExtension = { 'html': "text/html", 'js': "text/javascript" }; ... var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
-
9.이것은 기본적으로 연결 버전 3에 대한 허용 대답의 업데이트 버전입니다 :
이것은 기본적으로 연결 버전 3에 대한 허용 대답의 업데이트 버전입니다 :
var connect = require('connect'); var serveStatic = require('serve-static'); var app = connect(); app.use(serveStatic(__dirname, {'index': ['index.html']})); app.listen(3000);
나는 또한 그 index.html을가 기본으로 제공됩니다 있도록 기본 옵션을 추가했습니다.
-
10.당신은 노드에 대한 "NPM 무료 서버"라는 매우 작은 도서관이있어, 간단한 서버를 실행하는 모든 NPM 모듈을 사용할 필요가 없습니다 :
당신은 노드에 대한 "NPM 무료 서버"라는 매우 작은 도서관이있어, 간단한 서버를 실행하는 모든 NPM 모듈을 사용할 필요가 없습니다 :
코드의 50 개 라인, 출력은 파일 또는 폴더를 요청하고 일한 것이 실패 할 경우 그것을 적색 또는 녹색 색상을 제공하는 경우. 크기 1킬로바이트 미만 (축소 된).
-
11.당신이 노드 아마 당신에 PC를 설치 한 경우 당신은 당신이 NodeJS 물건을 필요하지 않은 경우, 당신은이에 대한 패키지를 제공 사용할 수 있으며, NPM이있다 :
당신이 노드 아마 당신에 PC를 설치 한 경우 당신은 당신이 NodeJS 물건을 필요하지 않은 경우, 당신은이에 대한 패키지를 제공 사용할 수 있으며, NPM이있다 :
1 - PC에서 패키지를 설치합니다 :
npm install -g serve
2 - 정적 폴더를 봉사 :
serve <path> d:> serve d:\StaticSite
그것은 당신의 정적 폴더가 같은 호스트에 바로 탐색이 제공되고있는 포트를 표시합니다 :
http://localhost:3000
-
12.내가 당신에게 몇 가지 사용이 될 수 NPM에 흥미 라이브러리를 발견했다. 그것은 마임라고 (마임을 설치 NPM 또는 https://github.com/broofa/node-mime) 그리고 파일의 MIME 형식을 확인할 수 있습니다. 여기에 내가 그것을 사용 쓴 웹 서버의 예입니다 :
내가 당신에게 몇 가지 사용이 될 수 NPM에 흥미 라이브러리를 발견했다. 그것은 마임라고 (마임을 설치 NPM 또는 https://github.com/broofa/node-mime) 그리고 파일의 MIME 형식을 확인할 수 있습니다. 여기에 내가 그것을 사용 쓴 웹 서버의 예입니다 :
var mime = require("mime"),http = require("http"),fs = require("fs"); http.createServer(function (req, resp) { path = unescape(__dirname + req.url) var code = 200 if(fs.existsSync(path)) { if(fs.lstatSync(path).isDirectory()) { if(fs.existsSync(path+"index.html")) { path += "index.html" } else { code = 403 resp.writeHead(code, {"Content-Type": "text/plain"}); resp.end(code+" "+http.STATUS_CODES[code]+" "+req.url); } } resp.writeHead(code, {"Content-Type": mime.lookup(path)}) fs.readFile(path, function (e, r) { resp.end(r); }) } else { code = 404 resp.writeHead(code, {"Content-Type":"text/plain"}); resp.end(code+" "+http.STATUS_CODES[code]+" "+req.url); } console.log("GET "+code+" "+http.STATUS_CODES[code]+" "+req.url) }).listen(9000,"localhost"); console.log("Listening at http://localhost:9000")
이것은 정규 텍스트 또는 이미지 파일을 제공합니다 (.html 중에서, .CSS,은 .js, .PDF, .JPG, .png를, .M4A 및 .MP3 내가 테스트 한 확장이있다,하지만이 모든 것을 작동해야 이론)
여기에 내가 함께 가지고 있다는 출력의 예입니다 :
Listening at http://localhost:9000 GET 200 OK /cloud GET 404 Not Found /cloud/favicon.ico GET 200 OK /cloud/icon.png GET 200 OK / GET 200 OK /501.png GET 200 OK /cloud/manifest.json GET 200 OK /config.log GET 200 OK /export1.png GET 200 OK /Chrome3DGlasses.pdf GET 200 OK /cloud GET 200 OK /-1 GET 200 OK /Delta-Vs_for_inner_Solar_System.svg
경로 구성의 언 이스케이프 기능을 확인할 수 있습니다. 이 공간과 인코딩 된 문자와 파일 이름을 허용하는 것입니다.
-
13.Node.js를 샘플 응용 프로그램 노드 채팅 당신이 원하는 기능을 가지고있다. 그것의 README.textfile에서 3 단계는 당신이 찾고있는 것입니다.
Node.js를 샘플 응용 프로그램 노드 채팅 당신이 원하는 기능을 가지고있다. 그것의 README.textfile에서 3 단계는 당신이 찾고있는 것입니다.
여기에 server.js입니다
여기에 util.js입니다
-
14.내가 할 방법은 통해 전 세계적으로 모든 노드를 설치 정적 서버의 첫번째이다
내가 할 방법은 통해 전 세계적으로 모든 노드를 설치 정적 서버의 첫번째이다
npm install node-static -g
HTML 파일을 포함하고 정적으로 정적 서버를 시작 디렉토리로 이동하여.
8080 / "yourHtmlFile": 브라우저와 유형 로컬 호스트로 이동합니다.
-
15.당신은 당신의 쉘 사람들을 입력 할 수 있습니다
당신은 당신의 쉘 사람들을 입력 할 수 있습니다
npx serve
REPO : https://github.com/zeit/serve합니다.
-
16.
var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); // change the to 'text/plain' to 'text/html' it will work as your index page res.end(index); }).listen(9615);
이 검색 어디서 난 당신을 생각합니다. 당신의 index.html을에서, 단순히 일반 HTML 코드로 채우기 - 당신이 좋아, 그것을 렌더링 할 원하는 :
<html> <h1>Hello world</h1> </html>
-
17.기본적으로 허용 대답을 복사하지만, JS 파일을 만들어 피.
기본적으로 허용 대답을 복사하지만, JS 파일을 만들어 피.
$ node > var connect = require('connect'); connect().use(static('.')).listen(8000);
아주 편리하다고했습니다.
익스프레스의 최신 버전으로, 정적 봉사 별도의 미들웨어가되었다. 제공하는 데 사용합니다 :
require('http').createServer(require('serve-static')('.')).listen(3000)
역할 정전기를 설치 첫째.
-
18.나는 어떤 파일 URL을 언급하지 않는 경우 기본 HTML 파일을 렌더링하는 간단한 웹 서버를 시작하는 코드 아래 사용합니다.
나는 어떤 파일 URL을 언급하지 않는 경우 기본 HTML 파일을 렌더링하는 간단한 웹 서버를 시작하는 코드 아래 사용합니다.
var http = require('http'), fs = require('fs'), url = require('url'), rootFolder = '/views/', defaultFileName = '/views/5 Tips on improving Programming Logic Geek Files.htm'; http.createServer(function(req, res){ var fileName = url.parse(req.url).pathname; // If no file name in Url, use default file name fileName = (fileName == "/") ? defaultFileName : rootFolder + fileName; fs.readFile(__dirname + decodeURIComponent(fileName), 'binary',function(err, content){ if (content != null && content != '' ){ res.writeHead(200,{'Content-Length':content.length}); res.write(content); } res.end(); }); }).listen(8800);
그것은 모든 HTML 콘텐츠와 함께, 모든 JS, CSS 및 이미지 파일을 렌더링합니다.
"어떤 콘텐츠 유형이 잘못보다 낫다"문에 동의
-
19.W3 스쿨에서
W3 스쿨에서
이 요청되는 모든 파일을 제공하는 노드 서버를 만드는 아주 쉽게, 당신은 그것을 위해 어떤 패키지를 설치해야 해달라고
var http = require('http'); var url = require('url'); var fs = require('fs'); http.createServer(function (req, res) { var q = url.parse(req.url, true); var filename = "." + q.pathname; fs.readFile(filename, function(err, data) { if (err) { res.writeHead(404, {'Content-Type': 'text/html'}); return res.end("404 Not Found"); } res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); return res.end(); }); }).listen(8080);
통해 http : // localhost : 8080 / file.html과
디스크에서 file.html과 서비스를 제공합니다
-
20.나는 그러나, 당신은 변경 시도 할 수 있습니다, 당신이 원하는 무엇을이 정확히 아닌 경우 확신합니다 :
나는 그러나, 당신은 변경 시도 할 수 있습니다, 당신이 원하는 무엇을이 정확히 아닌 경우 확신합니다 :
{'Content-Type': 'text/plain'}
이에:
{'Content-Type': 'text/html'}
이 브라우저 클라이언트 디스플레이를 대신 일반 텍스트의 HTML과 같은 파일이있을 것이다.
-
21.익스프레스 기능 sendfile을 당신이 필요로하는, 당신은 노드에서 웹 서버 기능을 원하기 때문에, 명시 적 자연 선택으로 제공하고 정적 파일을 제공하는 것은 쉬운만큼이된다 정확히 수행합니다
익스프레스 기능 sendfile을 당신이 필요로하는, 당신은 노드에서 웹 서버 기능을 원하기 때문에, 명시 적 자연 선택으로 제공하고 정적 파일을 제공하는 것은 쉬운만큼이된다 정확히 수행합니다
res.sendFile('/path_to_your/index.html')
자세한 내용은 여기를 읽어 https://expressjs.com/en/api.html#res.sendFile
노드에 대한 명시 적 웹 서버와 작은 예 :
var express = require('express'); var app = express(); var path = require('path'); app.get('/', function(req, res) { res.sendFile(path.join(__dirname + '/index.html')); }); app.listen(8080);
이것을 실행하고 탐색에 http : // localhost를 : 8080
이에 확장하려면 당신이 CSS와 이미지 같은 정적 파일을 제공 할 수 있도록, 여기에 또 다른 예입니다 :
var express = require('express'); var app = express(); var path = require('path'); app.use(express.static(__dirname + '/css')); app.get('/', function(req, res) { res.sendFile(path.join(__dirname + '/index.html')); }); app.listen(8080);
그래서 하위 폴더라는 CSS를 만들고, 그 안에 정적 콘텐츠를 넣어, 그것은 같은 쉽게 참조 할 수 있도록 index.html을 사용할 수있을 것입니다 :
<link type="text/css" rel="stylesheet" href="/css/style.css" />
HREF에서 상대 경로를 주목하라!
여기!
-
22.
var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'html'}); res.end(index); }).listen(9615); //Just Change The CONTENT TYPE to 'html'
-
23.A는 약간 더 자세한 4.x의 버전을 표현하지만 디렉토리 목록, 압축, 캐싱 및 라인 최소한의 로그인 요청을 제공합니다
A는 약간 더 자세한 4.x의 버전을 표현하지만 디렉토리 목록, 압축, 캐싱 및 라인 최소한의 로그인 요청을 제공합니다
var express = require('express'); var compress = require('compression'); var directory = require('serve-index'); var morgan = require('morgan'); //logging for express var app = express(); var oneDay = 86400000; app.use(compress()); app.use(morgan()); app.use(express.static('filesdir', { maxAge: oneDay })); app.use(directory('filesdir', {'icons': true})) app.listen(process.env.PORT || 8000); console.log("Ready To serve files !")
-
24.여기에 복잡한 대답을 미친 양. 당신이 프로세스 nodeJS 파일 / 데이터베이스에 의도 그러나 단지 역할을하지 않으려면 정적 HTML / CSS / JS / 다음 단순히 pushstate 서버 모듈 또는 유사한을 설치하시기 바랍니다 귀하의 질문에 같은 이미지;
여기에 복잡한 대답을 미친 양. 당신이 프로세스 nodeJS 파일 / 데이터베이스에 의도 그러나 단지 역할을하지 않으려면 정적 HTML / CSS / JS / 다음 단순히 pushstate 서버 모듈 또는 유사한을 설치하시기 바랍니다 귀하의 질문에 같은 이미지;
여기에 미니 사이트를 만들고 시작하는 "하나 라이너"입니다. 간단히 해당 디렉토리에있는 터미널에 그 전체 블록을 붙여 넣습니다.
mkdir mysite; \ cd mysite; \ npm install pushstate-server --save; \ mkdir app; \ touch app/index.html; \ echo '<h1>Hello World</h1>' > app/index.html; \ touch server.js; \ echo "var server = require('pushstate-server');server.start({ port: 3000, directory: './app' });" > server.js; \ node server.js
브라우저 열기하고 http : // localhost : 3000. 끝난.
서버에서 파일을 제공 할 수있는 루트로 응용 프로그램 디렉토리를 사용합니다. 추가 자산을 추가하려면 그냥 디렉토리 내에 배치합니다.
-
25.간단한 nodejs 서버에 대한 훌륭한 솔루션이 이미 있습니다. 당신이 당신의 파일을 변경 한대로-다시로드 라이브 필요가있는 경우 또 하나의 해결책이있다.
간단한 nodejs 서버에 대한 훌륭한 솔루션이 이미 있습니다. 당신이 당신의 파일을 변경 한대로-다시로드 라이브 필요가있는 경우 또 하나의 해결책이있다.
npm install lite-server -g
디렉토리를 탐색 할
lite-server
그것은 라이브 다시로드와 함께 당신을 위해 브라우저를 엽니 다.
-
26.답변의 대부분은 위의 아주 멋지게 내용이 제공되는 방법에 대해 설명합니다. 디렉토리의 다른 내용을 찾아 볼 수 있도록 내가 추가로보고되었다 디렉토리의 목록을했다. 여기에 더 독자를 위해 내 솔루션입니다 :
답변의 대부분은 위의 아주 멋지게 내용이 제공되는 방법에 대해 설명합니다. 디렉토리의 다른 내용을 찾아 볼 수 있도록 내가 추가로보고되었다 디렉토리의 목록을했다. 여기에 더 독자를 위해 내 솔루션입니다 :
'use strict'; var finalhandler = require('finalhandler'); var http = require('http'); var serveIndex = require('serve-index'); var serveStatic = require('serve-static'); var appRootDir = require('app-root-dir').get(); var log = require(appRootDir + '/log/bunyan.js'); var PORT = process.env.port || 8097; // Serve directory indexes for reports folder (with icons) var index = serveIndex('reports/', {'icons': true}); // Serve up files under the folder var serve = serveStatic('reports/'); // Create server var server = http.createServer(function onRequest(req, res){ var done = finalhandler(req, res); serve(req, res, function onNext(err) { if (err) return done(err); index(req, res, done); }) }); server.listen(PORT, log.info('Server listening on: ', PORT));
-
27.내가 건너 온 한 간단한 버전은 다음과 같습니다. 그것은 어떤 추상적 인 라이브러리를 사용하지 않기 때문에 교육 목적을 위해, 그것은 가장 좋습니다.
내가 건너 온 한 간단한 버전은 다음과 같습니다. 그것은 어떤 추상적 인 라이브러리를 사용하지 않기 때문에 교육 목적을 위해, 그것은 가장 좋습니다.
var http = require('http'), url = require('url'), path = require('path'), fs = require('fs'); var mimeTypes = { "html": "text/html", "mp3":"audio/mpeg", "mp4":"video/mp4", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "js": "text/javascript", "css": "text/css"}; http.createServer(function(req, res) { var uri = url.parse(req.url).pathname; var filename = path.join(process.cwd(), uri); fs.exists(filename, function(exists) { if(!exists) { console.log("not exists: " + filename); res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('404 Not Found\n'); res.end(); return; } var mimeType = mimeTypes[path.extname(filename).split(".")[1]]; res.writeHead(200, {'Content-Type':mimeType}); var fileStream = fs.createReadStream(filename); fileStream.pipe(res); }); //end path.exists }).listen(1337);
이제 브라우저를 열고 다음으로 이동 :
http://127.0.0.1/image.jpg
여기 image.jpg를이 파일과 같은 디렉토리에 있어야합니다. 이 사람을 도움이되기를 바랍니다 :)
-
28.이것은 내가 빠르게 웹 페이지를 참조하는 데 사용하는 가장 빠른 솔루션 중 하나입니다
이것은 내가 빠르게 웹 페이지를 참조하는 데 사용하는 가장 빠른 솔루션 중 하나입니다
sudo npm install ripple-emulator -g
그때부터 당신의 HTML 파일과 실행의 디렉토리를 입력
ripple emulate
다음 넥서스 7 가로로 장치를 변경할.
-
29.로컬 웹 서버는 좀 확실히 가치가 있습니다! 여기에 추가 정보에서 발췌이다 :
로컬 웹 서버는 좀 확실히 가치가 있습니다! 여기에 추가 정보에서 발췌이다 :
빠른 전체 스택 개발을위한 린, 모듈 형 웹 서버.
이 도구를 사용하여 다음
로컬 - 웹 서버가 유용한 미들웨어의 "스타터 팩"과 함께 번들로 LWS의 분포이다.
이 패키지는 WS 명령 줄 도구를 (사용 가이드를 참조하시기 바랍니다) 설치합니다.
인수없이 WS를 실행하면 정적 인 웹 사이트로 현재 디렉토리를 개최한다. 해당 파일이 존재하는 경우 서버로 이동하는 것은, 디렉토리 목록 또는 index.html을 렌더링합니다.
$ ws Listening on http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
정적 파일 튜토리얼.
DEV 및 통계 -이 클립은 정적 호스팅 플러스 로그 출력 형식의 몇 가지를 보여줍니다.
단일 페이지 응용 프로그램 (클라이언트 측 라우팅 응용 프로그램, 예를 들면 반응 또는 각도 응용 프로그램)을 제공하면 한 페이지의 이름을 지정하는 것과 같은 사소한 수 있습니다 :
$ ws --spa index.html
정적 사이트로, 일반적인 SPA 경로 (예 : / 사용자 / 1 / 로그인)에 대한 요청이 존재하지 않는 위치에 파일로 찾을 수 없음 (404)를 반환합니다. 그러나, SPA로 index.html을 표시하여이 규칙을 만들 :
정적 파일 (예를 들어 /css/style.css는) 다음, 그렇지 않은 경우 (예를 들어, / 로그인)를 제공 요청 경우 지정된 스파 서비스를 제공하고 경로 클라이언트 측을 처리합니다.
SPA 튜토리얼.
또 다른 일반적인 사용 사례는 원격 서버에 특정 요청을 전달하는 것입니다.
다음 명령 프록시는 https://jsonplaceholder.typicode.com/posts/에 / 글 /로 시작하는 경로에서 포스트 요청을 블로그. 예를 들어, / 글 / 1에 대한 요청은 https://jsonplaceholder.typicode.com/posts/1로 프록시 될 것이다.
$ ws --rewrite '/posts/(.*) -> https://jsonplaceholder.typicode.com/posts/$1'
재 작성 튜토리얼.
이 클립은 기본 파일 확장명을 지정하고 활동을 모니터링 --verbose하는 --static.extensions의 위의 플러스을 사용하는 방법을 보여줍니다.
HTTPS 또는 HTTP2를 들어, 각각 --https 또는 --http2 플래그를 전달합니다. 추가 구성 옵션에 대한 위키와 브라우저에서 "녹색 자물쇠"를 얻는 방법에 대한 설명서를 참조하십시오.
$ lws --http2 Listening at https://mba4.local:8000, https://127.0.0.1:8000, https://192.168.0.200:8000
-
30.나는 또한 매우 쉽게 설정하는 것입니다 빠른 쓰기 시작하는 옵션을 제공하고 훌륭한 기능을 가지고 SugoiJS을 추천 할 수 있습니다.
나는 또한 매우 쉽게 설정하는 것입니다 빠른 쓰기 시작하는 옵션을 제공하고 훌륭한 기능을 가지고 SugoiJS을 추천 할 수 있습니다.
여기를보세요이 시작하기 : http://demo.sugoijs.com/ , 문서 : https://wiki.sugoijs.com/
이 요청을 처리 장식, 요청 정책 및 권한 부여 정책의 장식이있다.
예를 들면 :
import {Controller,Response,HttpGet,RequestParam} from "@sugoi/server"; @Controller('/dashboard') export class CoreController{ constructor(){} @HttpGet("/:role") test(@RequestParam('role') role:string, @RequestHeader("role") headerRole:string){ if(role === headerRole ) return "authorized"; else{ throw new Error("unauthorized") } } }
from https://stackoverflow.com/questions/6084360/using-node-js-as-a-simple-web-server by cc-by-sa and MIT license
'NODEJS' 카테고리의 다른 글
[NODEJS] Express를 사용 NodeJS 서버에서 파일을 다운로드 (0) | 2020.09.16 |
---|---|
[NODEJS] 어떻게 NPM의 ERR "NPM 오류를 해결하기 위해! 코드 ELIFECYCLE " (0) | 2020.09.16 |
[NODEJS] 어떤 범위에서 모듈 변수는 Node.js를에 저장됩니다? (0) | 2020.09.16 |
[NODEJS] 그것은 사용하는 비동기에 대한 안티 패턴 / await를 내 새로운 약속 () 생성자의인가? (0) | 2020.09.16 |
[NODEJS] 어떻게 체인 및 공유 이전 결과 약속에 [중복] (0) | 2020.09.16 |