NodeJS GET 와 POST 가 요청 한 예제 코드 를 받 습 니 다.
express 프레임 수신
app.get('/',function(req,res) {
var url = req.query.url;
var name = req.query.name;
console.log(url, name);
});
2 수신 Get1.get 매개 변 수 는 req.url 에 있 습 니 다.
2.url.parse 를 사용 하여 데 이 터 를 문자열 에서 obj 로 변환 합 니 다.
index.js:
var http = require('http');
var url = require('url');
var util = require('util');
//req res
http.createServer(function(req, res){
res.writeHeader(200, {'Content-Type':'text/javascript;charset=UTF-8'}); // +
// url
var params = url.parse(req.url, true).query; //parse ,req.url="/?url=123&name=321",true params {url:"123",name:"321"},false params url=123&name=321
res.write(" :" + params.name);
res.write("
");
res.write(" URL:" + params.url);
res.end();
}).listen(3000);
브 라 우 저 열기:http://127.0.0.1:3000/?url=123&name=321웹 페이지 표시:
사이트 이름:321
사이트 URL:123
3 발송 Get
index.js:
var http = require('http');
var qs = require('querystring');
var data = {
a: 123,
time: new Date().getTime()};//
var content = qs.stringify(data);
var options = {
hostname: '127.0.0.1',
port: 10086,
path: '/pay/pay_callback?' + content,
method: 'GET'
};
var req = http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.end();
포스트 4 접수이 페이지 를 요청 할 때 post 데이터 에 name 과 url 이 없 으 면 제출 페이지 로 돌아 갑 니 다.name 과 url 이 있 으 면 인쇄 합 니 다.
1.post 요청 은"data"이 벤트 를 촉발 합 니 다.
2.chuck 사용+=저장,favicon.ico 추가 요청 으로 body={}.
3.종료 요청 시"end"이벤트 가 발생 합 니 다.chuck 반 직렬 화 query string.parse(body)를 대상 배열 로 body.name 을 사용 하여 post 변 수 를 방문 합 니 다.
index.js:
var http = require('http');
var querystring = require('querystring');
var postHTML =
'<html><head><meta charset="utf-8"><title> Node.js </title></head>' +
'<body>' +
'<form method="post">' +
' : <input name="name"><br>' +
' URL: <input name="url"><br>' +
'<input type="submit">' +
'</form>' +
'</body></html>';
http.createServer(function (req, res) {
//
var body = "";
//
console.log(req.url);
// , post
req.on('data', function (chunk) {
body += chunk; // +=, body=chunk, favicon.ico,body {}
console.log("chunk:",chunk);
});
// end , querystring.parse post POST , 。
req.on('end', function () {
//
body = querystring.parse(body); //
console.log("body:",body);
// \<br><br> res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});
if(body.name && body.url) { //
res.write(" :" + body.name);
res.write("<br>");
res.write(" URL:" + body.url);
} else { //
res.write(postHTML);
}
res.end();
});
}).listen(3000);
브 라 우 저 에서 열기:http://127.0.0.1:3000/첫 번 째 방문 127.0.0.1,post 에 name 과 url 이 없어 제출 페이지 를 표시 합 니 다.
제출 을 클릭 하면 웹 페이지 는 다음 과 같은 결 과 를 출력 합 니 다.
질문:
1.req.on("end"이 벤트 는 여러 번 실 행 됩 니 다.favicon.ico 에 요청 할 테 니까.
2. res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});
text/html 은 파일 의 content-type 을 text/html 형식 으로 설정 하고 브 라 우 저 는 이 파일 을 가 져 올 때 html 해상도 기 를 자동 으로 호출 하여 파일 을 처리 합 니 다.
text/plain 은 파일 을 일반 텍스트 로 설정 하고 브 라 우 저 는 이 파일 을 가 져 올 때 처리 하지 않 습 니 다.
5.포스트 보 내기
index.js:
var http = require('http');
var querystring = require('querystring');
var contents = querystring.stringify({
name:'byvoid',
email:'[email protected]',
address:'Zijing'
});
var options = {
host:'www.byvoid.com',
path:'/application/node/post.php',
method:'POST',
headers:{
'Content-Type':'application/x-www-form-urlendcoded',
'Content-Length':contents.length
}
}
var req = http.request(options, function(res){
res.setEncoding('utf8');
res.on('data',function(data){
console.log("data:",data); // html
});
});
req.write(contents);
req.end;
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(Ajax)서버에 GET, POST 요청응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 ex) 레스토랑 - 서버, 손님 - 클라이언트 라고 가정했을 때 손님이 주문가능한 음식을 요청하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.