手机版

详细说明如何用Node.js实现Restful风格的webservice

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

Restful风格的WebService正在逐渐取代传统的SOAP,Java也有很多Restful框架,方便简洁。也可以使用Jersey、Restlet甚至SpringMVC。必须说,休息让人们从Web到WebService的转换变得更容易、更方便。当然,深入Restful理论会更复杂。然而,发展和理论不需要如此契合。有时候伪Restful更直观可靠。

但是,作为一个帅气的Node.js,怎么能不与同样帅气的Restful结合呢?对于我们这些忽视理论的开发者来说,restful只是HTTP方法的规范,所以Node这种免费的技术也实现Restful是很正常的。我不需要任何框架,但我仍然使用Express。Express只是原生http模块的一层封装,不用担心!

Java曾经是一个Xml配置文件泛滥的世界,但现在是一个注释不分青红皂白进入的世界。虽然注释的侵入性相对较小,但是带有一堆注释的类也是令人苦恼的,尤其是各种框架的注释混杂在一起。好在每个框架都比较有意识,各自负责不同的层,所以不会导致各种标注的混乱。好吧,那么欢迎来到没有注释和xml的世界:

我就是一个例子。

var express=require(' express ')//load module var app=express()//installed varmap={ ' 1 ' : { id :1,name:' test'},' 2' : {id33602,name : ' test ' Get '(/devices),function (req,RES) {//restfulget方法,查找整个集合资源RES . set({ ' content-type ' : ' text/JSON ',' encoding ' :RES . send(map)})app . get('/devices/: id ',function (req,res) {//restfulget方法,查找单个资源RES . set({ ' content-type ' : ' text/JSON ',' encoding ' :)RES . send(map[req . param(' id '))))//console . log(req . param(' id '))})app . post('/devices/',express.bodyparser(),function (req,RES) {//restfulpost方法地图[请求。body.id]=req。body RES . send({ status : ' success ',url:'/devices/'req。body.id})//id一般由数据库生成}) app.put('/devices/:id ',Express.bodyparser(),function (req,res) {//restfulput方法,更新单个资源RES . set({ ' content-type ' : ' text/JSON ',' encoding ' : ' 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) {//restfuldelete方法,删除单个资源RES . set({ ' content-type ' : ' text/JSON ',' encoding ' : ' utf8 ' })delete map[req . param(' id ')]RES . send({ status : ' success ',URL : '/devices/' req . param(' id ')})console . log(map)})app listen(80。//监听端口8888。我没办法。我不能从雄猫那里偷8080!-我是一个测试。

要用Postman测试ok,代码中唯一令人惊讶的应该是delete map[req.param('id')]。我们知道js的映射是一个Object,或者Object是一个映射,deleteobject.property .这个属性是可以删除的。但是删除Object[Property]也可以杀死这个属性,delete o.x也可以写成delete o['x'],效果一样。请关注删除:ECMAScript删除!

绑不绑都很方便!和那些XXX框架的代码很像!如果你是一个寻找另一个人的人,Node.js肯定会让你满意,有争议的路由表已经出现了:

我是另一个文件:routes.js -

{ get: [ { path: '/',method: 'get ',callbacks: [Object],key :[],regexp: /^\/\/?$/i },{ path: '/user/:id ',method: 'get ',callbacks: [Object],key :[{ name : ' id ',optional: false }],regexp: /^\/user\/(?([^\/] ?))\/?$/i } ],delete :[{ path : '/user/: id ',method: 'delete ',callbacks: [Object],key :[object],regexp: /^\/user\/(?([^\/] ?))\/?$/i}]}定义这样一个对象,然后

var routes=require('。/routes’)app . use(app . router);//保留原路线(app);//此为新增,前者作为默认路由。更多关于路线:快递官网可靠。毕竟node.js最大的问题就是数据的api太老了!

Node.js处理的请求,包括其他的Io,都是异步的、快速的,所以我对性能比较乐观,Ab测试的结果还在测试中。总之,我希望杀死雄猫!(不是集群!)

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:详细说明如何用Node.js实现Restful风格的webservice是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。