node.js에서 http 모듈을 사용하는 방법
이 글은 주로 node.js http 모듈에 대한 심층적인 이해를 소개합니다. 이제 공유하고 참고하겠습니다.
http 모듈은 주로 HTTP 서버와 클라이언트를 구축하는 데 사용됩니다. HTTP 서버 또는 클라이언트 기능을 사용하려면 http 모듈을 호출해야 합니다.
서버 만들기
var http = require(“http”);var url = require(“url”);//创建服务器//http继承自tcpvar server = http.createServer(function (req,res) { var urlstr = req.url;//获取请求的路径 var urlMethod = req.method;//获取请求的方法 var urlObj = url.parse(urlstr,true); console.log(urlObj); console.log(urlMethod); res.end(“hello”);});server.listen(8080);
요청 처리
요청은 get과 post의 두 가지 유형으로 구분됩니다. get 요청 URL 주소에는 매개변수가 있으며 req.url은 매개변수를 얻을 수 있지만 post 요청은 더 복잡합니다. 게시 요청을 처리하려면 req.on()을 사용하세요.
Post 요청 방법: req.on("data"function(){})을 사용하여 읽고, str 문자열 연결을 사용하고, req.on("end",function(){})이 완료된 후 출력합니다. 게시물 요청에서 보내려는 매개변수
get 요청 방법: 매개변수를 가져오려면 요청 주소에 url.parse(req.url,true).query를 사용하세요.
var http = require("http"); var fs = require("fs"); var url = require("url"); var querystring = require("querystring"); var server = http.createServer(function (req,res) { console.log(req.method); var pathname = url.parse(req.url,true).pathname; if(pathname=="/"){ // 加载注册页面 var rs = fs.createReadStream("post.html"); rs.pipe(res); }else if(pathname=="/post"){ // 处理post请求 var str = ""; req.on("data",function (chunk) { // console.log(chunk.toString()); str += chunk; }); req.on("end",function(){ var postObj = querystring.parse(str); console.log(postObj); }) }else if(pathname=="/get"){ // get请求 var getObj = url.parse(req.url,true).query; res.write(JSON.stringify(getObj)); res.end(); }else if(pathname!="/favicon.ico"){ var rs = fs.createReadStream("."+pathname); rs.pipe(res); }; }); server.listen(8787);
업로드 파일 처리
프론트엔드 HTML 코드는 다음과 같습니다. 자세히 설명하지 않겠습니다.
<form action=“/upimg” method=“post” enctype=“multipart/form-data”> 用户名: <input type=“text” name=“user”><br> 密码: <input type=“password” name=“pass”><br> 上传图片: <input type=“file” name=“file1”><br> <input type=“submit” value=“提交”></form>
파일 업로드를 구현하려면 강력한 모듈을 도입해야 합니다. var formidable = require("formidable"); 해당 모듈이 없으면 터미널에 npm install formidable을 입력하여 설치하세요.
form.parse(req, function(err, fields, fies){}) 메서드 콜백 함수 세 개의 매개변수
err: 오류 메시지 반환
fields: 게시물 요청에 의해 반환된 필드 및 해당 값
-
fies: 업로드된 파일 개체, 개체에는 파일에 대한 자세한 정보가 많이 포함되어 있습니다.
파일 정보를 얻은 후 데이터 스트림 읽기 및 쓰기를 사용하여 파일을 복사합니다.
var http = require("http"); var fs = require("fs"); var url = require("url"); // 文件上传 var formidable = require("formidable"); var server = http.createServer(function(req,res){ var pathname = url.parse(req.url,true).pathname; if(pathname=="/"){ var rs = fs.createReadStream("uploads.html"); rs.pipe(res); }else if(pathname=="/uploads"){ // 实例化一个formidable类 var form = new formidable.IncomingForm(); // 调用parse方法 form.parse(req,function(err,fields,files){ if(err){ return console.log(err); }else{ // console.log("字段",fields); // 存储字段 var fieldStr = JSON.stringify(fields); fs.writeFileSync("1.txt",fieldStr); // 转存文件 if(!fs.existsSync("uploads")){ fs.mkdir("uploads"); } // 随机路径 var filePath = files.img.path; var rs = fs.createReadStream(filePath); var ws = fs.createWriteStream("./uploads/"+files.img.name); rs.pipe(ws); rs.on("data",function (chunk) { }) rs.on("end",function(){ console.log("复制成功"); res.write("上传成功"); res.end(); }) res.setHeader("Content-type","text/html;charset=utf8"); console.log("文件",files); } }) }else if(pathname!="/favicon.ico"){ var rs = fs.createReadStream("."+pathname); rs.pipe(res); } }); server.listen(8880);
http 시뮬레이션 클라이언트
주로 옵션 구성, 가장 기본적인 매개변수는 다음과 같습니다.
method: 요청 방법을 설명합니다.
host: 서버 IP, 여기서는 localhost를 예로 들어 보겠습니다.
path: 요청 경로;
this http.createServer()를 사용하여 서버를 만드는 대신 http.request()를 사용하여 서버를 요청하면 나머지는 서버와 거의 동일합니다.- 위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다. 관련 기사:
// 通过nodejs模拟客户端 var http = require("http"); var options = { method:"post", host:"localhost", port:2121, path:"/" }; var request = http.request(options,function (res) { var str = ""; res.on("data",function(chunk){ str += chunk; }); res.on("end",function () { console.log(str); }) }); var obj = { name:"李四", age:20 } request.write(JSON.stringify(obj)); request.end();
vue-router에서 ElementUI를 사용하여 탐색을 구현하는 방법
자세한 설명 vue 프로젝트에 elementUI 구성 요소 소개
In Vue- How cli에서 별도 페이지의 배경색을 설정하려면
Angular2의 Material 사용 정보(자세한 튜토리얼)
Angular에서 Lodash 메서드를 사용하는 방법은 무엇입니까?
네이티브 js를 사용하여 지방자치단체 간 3단계 연결을 구현하세요
위 내용은 node.js에서 http 모듈을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Node.js는 고성능, 확장성, 크로스 플랫폼 지원, 풍부한 생태계, 개발 용이성 등의 기능을 제공하므로 백엔드 프레임워크로 사용할 수 있습니다.

MySQL 데이터베이스에 연결하려면 다음 단계를 따라야 합니다. mysql2 드라이버를 설치합니다. mysql2.createConnection()을 사용하여 호스트 주소, 포트, 사용자 이름, 비밀번호 및 데이터베이스 이름이 포함된 연결 개체를 만듭니다. 쿼리를 수행하려면 Connection.query()를 사용하세요. 마지막으로 Connection.end()를 사용하여 연결을 종료합니다.

Node.js 설치 디렉터리에는 npm과 npm.cmd라는 두 가지 npm 관련 파일이 있습니다. 차이점은 다음과 같습니다. 확장자가 다릅니다. npm은 실행 파일이고 npm.cmd는 명령 창 바로 가기입니다. Windows 사용자: npm.cmd는 명령 프롬프트에서 사용할 수 있으며, npm은 명령줄에서만 실행할 수 있습니다. 호환성: npm.cmd는 Windows 시스템에만 해당되며 npm은 크로스 플랫폼에서 사용할 수 있습니다. 사용 권장사항: Windows 사용자는 npm.cmd를 사용하고, 기타 운영 체제는 npm을 사용합니다.

Node.js에는 다음과 같은 전역 변수가 존재합니다. 전역 개체: 전역 핵심 모듈: 프로세스, 콘솔, 필수 런타임 환경 변수: __dirname, __filename, __line, __column 상수: undefine, null, NaN, Infinity, -Infinity

Node.js와 Java의 주요 차이점은 디자인과 기능입니다. 이벤트 중심 대 스레드 중심: Node.js는 이벤트 중심이고 Java는 스레드 중심입니다. 단일 스레드 대 다중 스레드: Node.js는 단일 스레드 이벤트 루프를 사용하고 Java는 다중 스레드 아키텍처를 사용합니다. 런타임 환경: Node.js는 V8 JavaScript 엔진에서 실행되는 반면 Java는 JVM에서 실행됩니다. 구문: Node.js는 JavaScript 구문을 사용하고 Java는 Java 구문을 사용합니다. 목적: Node.js는 I/O 집약적인 작업에 적합한 반면, Java는 대규모 엔터프라이즈 애플리케이션에 적합합니다.

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

예, Node.js는 백엔드 개발 언어입니다. 서버 측 비즈니스 로직 처리, 데이터베이스 연결 관리, API 제공 등 백엔드 개발에 사용됩니다.

Node.js 프로젝트의 서버 배포 단계: 배포 환경 준비: 서버 액세스 권한 획득, Node.js 설치, Git 저장소 설정. 애플리케이션 빌드: npm run build를 사용하여 배포 가능한 코드와 종속성을 생성합니다. Git 또는 파일 전송 프로토콜을 통해 서버에 코드를 업로드합니다. 종속성 설치: SSH를 서버에 연결하고 npm install을 사용하여 애플리케이션 종속성을 설치합니다. 애플리케이션 시작: node index.js와 같은 명령을 사용하여 애플리케이션을 시작하거나 pm2와 같은 프로세스 관리자를 사용합니다. 역방향 프록시 구성(선택 사항): Nginx 또는 Apache와 같은 역방향 프록시를 사용하여 트래픽을 애플리케이션으로 라우팅합니다.
