node. js 웹 응용 기본 프레임 워 크
1. 서버 가 사용자 의 요청 을 받 아들 일 수 있 습 니 다.
2. 라 우 터 가 사용자 의 요구 에 따라 서로 다른 응답 을 할 수 있 는 경로 가 있 습 니 다.
3. 일부 handle 은 사용자 의 request 를 분석 하고 결 과 를 사용자 에 게 되 돌려 줄 수 있 으 며 이 handle 은 router 에 의 해 호출 될 수 있 습 니 다.
위의 요구 에 도달 하려 면 우 리 는 이렇게 몇 개의 서류 가 필요 하 다.
1. index. js, 입구 파일 로
2. server. js, 서버 서버 로 서
3. router. js, 공유 기 로 서
4. handler. js, 실제 동작 으로 처리
아래 각 문건 을 일일이 분석 하 다
index.js
var server=require('./server');
var router=require('./router');
var handlers=require('./handler');// server,router,handlers
var handle={};
handle['/']=handlers.index;
handle['/index']=handlers.index;
handle['/postform']=handlers.postform;
handle['/postaction']=handlers.postaction;// handlers url , handle
server.start(router.route,handle);// router handle server
server.js
var http=require('http');
var url=require('url');
function start(route,handle){
var host='localhost';
var port='1337';
function onRequest(request,response){
var postData='';
route(request,response,postData,handle);
}
http.createServer(onRequest).listen(port,host);// route
console.log('Server Listen At Http://'+host+':'+port+'/');
}
exports.start=start;
router.js
var url=require('url');
function route(request,response,postData,handle){
var path=url.parse(request.url).pathname;
if(typeof handle[path]=='function'){
handle[path](request,response);// handle
}
else{
response.writeHead(404,{'Content-Type':'text/html'});
response.write('your request is not exist!!!');
response.end();
}
}
exports.route=route;
handler.js
/**
* Created with JetBrains WebStorm.
* User: lehui
* Date: 13-1-9
* Time: 12:12
* To change this template use File | Settings | File Templates.
*/
var url=require('url');
var exec=require('child_process').exec;
var querystring=require('querystring');
/********************** ******************************/
function index(request,response){
response.writeHead(200,{'Content-Type':'text/html'});
var body='<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<div><ul>'+
'<li><a href="/">home</a></li>'+
'<li><a href="/postform">post</a></li>'+
'<li><a href="/iotest1">iotest1</a></li>'+
'<li><a href="/iotest2">iotest2</a></li>'+
'<li><a href="/fileuploadform">fileUploadForm</a></li>'+
'</ul></div>'+
'</body>'+
'</html>';
response.write(body);
response.end();
}
/***************************post **************************************/
function postForm(request,response){
response.writeHead(200,{'Content-Type':'text/html'});
var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/postaction" method="post">'+
'<textarea name="text" rows="20" cols="60"></textarea>'+
'<input type="submit" value="Submit text" />'+
'</form>'+
'</body>'+
'</html>';
var path=url.parse(request.url).pathname;
response.write(body);
response.end();
}
function postAction(request,response){
var formidable=require('formidable');
var form=new formidable.IncomingForm();// formidable post ,
form.parse(request,function(error,fields,files){
if(!error){
response.writeHead(200,{'Content-Type':'text/html'});
response.write(JSON.stringify(fields));
response.end();
}
});
}
exports.index=index;
exports.postform=postForm;
exports.postaction=postAction;
이로써 간단 한 웹 애플 리 케 이 션 을 만 들 수 있 습 니 다. 저 희 는 node index. js 로 서 비 스 를 시작 하면 ok 입 니 다. 그리고 포트 1337 에서 서 비 스 를 요청 하면 해당 하 는 웹 페이지 를 볼 수 있 습 니 다.http://localhost:1337/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fortinet FortiWeb Web Application Firewall Policy BypassFrom: Geffrey Velasquez Date: Wed, 2 May 2012 20:33:23 -0500...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.