Node.js 로 Restful 스타일 웹 서 비 스 를 구현 합 니 다.
4656 단어 nodejswebservice
하지만 멋 진 Node.js 로 서 어떻게 똑 같이 멋 진 Restful 과 어 울 리 지 않 을 수 있 겠 어 요!?이론 을 무시 하 는 개발 자 에 게 Restful 은 url 의 규범+HTTP method 의 규범 일 뿐 이 므 로 Node 라 는 자유로운 기술 에 있어 서도 restful 변 화 를 실현 하 는 것 이 매우 정상 적 입 니 다.프레임 은 필요 없 지만 저 는 Express 를 사 용 했 습 니 다.Express 는 원래 의 http 모듈 에 대한 포장 일 뿐 입 니 다.그렇게 따 지지 마 세 요!
자바 는 Xml 프로필 이 횡행 하 는 세상 이 었 습 니 다.지금 은 각종 Annotation(주해)이 난입 하 는 세상 입 니 다.주해 의 침입 성 이 비교적 작 지만 주 해 를 한 무더기 더 하 는 것 도 사람 을 슬 프 게 합 니 다.특히 각 프레임 이 혼 합 된 주 해 는 각 프레임 이 자각 적 이 고 여러 가지 책임 을 지 는 층 이기 때문에 각종 주해 의 혼란 을 초래 하지 않 습 니 다.자,그럼 다음은 어서 오 세 요.주석 도 없고 xml 도 사용 하지 않 은 세상 입 니 다.
나 는 예---
var express = require('express') //
var app = express() //
var map = {"1":{id:1,name:"test"},"2":{id:2,name:"test"}} // ,key java MAP<T,E>, hash !
app.get('/devices',function(req, res){ //Restful Get ,
res.set({'Content-Type':'text/json','Encodeing':'utf8'});
res.send(map)
})
app.get('/devices/:id',function(req, res){ //Restful Get ,
res.set({'Content-Type':'text/json','Encodeing':'utf8'});
res.send(map[req.param('id')])
//console.log(req.param('id'))
})
app.post('/devices/', express.bodyParser(), function(req, res){ //Restful Post ,
res.set({'Content-Type':'text/json','Encodeing':'utf8'});
map[req.body.id] = req.body
res.send({status:"success",url:"/devices/"+req.body.id}) //id
})
app.put('/devices/:id', express.bodyParser(), function(req, res){ //Restful Put ,
res.set({'Content-Type':'text/json','Encodeing':'utf8'});
map[req.body.id] = req.body
res.send({status:"success",url:"/devices/"+req.param('id'),device:req.body});
})
app.delete('/devices/:id',function(req, res){ //Restful Delete ,
res.set({'Content-Type':'text/json','Encodeing':'utf8'});
delete map[req.param('id')]
res.send({status:"success",url:"/devices/"+req.param('id')})
console.log(map)
})
app.listen(8888); // 8888 , , tomcat 8080 !
나 는 테스트Postman 으로 ok 을 테스트 합 니 다.코드 에서 유일 하 게 의아 한 것 은 delete map[req.param(id)]입 니 다.js 의 map 가 Object 이거 나 Object 가 map 인 것 을 알 고 있 습 니 다.delete object.property 는 이 속성 을 삭제 할 수 있 습 니 다.하지만 delete Object[Property]도 이 속성 을 제거 할 수 있 습 니 다.delete o.x 도 delete o[x]를 쓸 수 있 습 니 다.둘 다 효과 가 같 습 니 다 delete 에 대해 보 세 요:ECMAScript delete!
묶 든 안 묶 든 편 하 잖 아!XXX 프레임 워 크 코드 랑 비슷 하 잖 아!만약 당신 이 다른 사람 을 찾 는 사람 이 라면 Node.js 도 당연히 당신 을 만족 시 킬 것 입 니 다.항상 논란 이 되 었 던 경로 표 가 등장 합 니 다.
---나 는 다른 파일:routes.js------
{ get:
[ { path: '/',
method: 'get',
callbacks: [Object],
keys: [],
regexp: /^\/\/?$/i },
{ path: '/user/:id',
method: 'get',
callbacks: [Object],
keys: [{ name: 'id', optional: false }],
regexp: /^\/user\/(?:([^\/]+?))\/?$/i } ],
delete:
[ { path: '/user/:id',
method: 'delete',
callbacks: [Object],
keys: [Object],
regexp: /^\/user\/(?:([^\/]+?))\/?$/i } ] }
이러한 대상 을 정의 한 다음,
var routes = require('./routes')
app.use(app.router);//
routes(app);// ,
routes 에 대한 더 많은 내용:Express 홈 페이지 믿 을 만하 다.왜냐하면 node.js 의 가장 큰 문 제 는 바로 자료 의 api 가 너무 낡 았 다 는 것 이다!Node.js 처리 요청 은 다른 Io 를 포함 하여 모두 비동기 적 이 고 빠 르 기 때문에 성능 에 대해 저 는 비교적 좋 습 니 다.Ab 테스트 결과 에 대해 서도 측정 하고 있 습 니 다.어쨌든 저 는 tomcat 를 순식간에 죽 일 수 있 기 를 바 랍 니 다!(클 러 스 터 아 닙 니 다!)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Node.js를 AWS서버에서 사용하는 실습간단한 예제와 함께 AWS에서 Node.js를사용하는 법을 배워보도록 하겠다. 해당 github에 있는 레포지토리로 사용을 할 것이다. 3000번 포트로 Listen되는 예제이고 간단히 GET, POST, DELET...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.