node-restify简介
restify 是Node.js的模块。虽然restify的API或多或少的参考了express,但restify不是一个MVC框架,它是一套为了能够正确构建REST风格API而诞生的框架。
###安装restify
将restify安装到目录restify-dmeo
$ mkdir restify-demo
$ cd restify-demo
$ npm install restify###Hello World
var restify = require('restify');
function respond(req, res, next) {
  res.send('hello ' + req.params.name);
}
var server = restify.createServer();
server.get('/hello/:name', respond);
server.listen(8080, function() {
  console.log('%s listening at %s', server.name, server.url);
});保存文件并执行
$ node app.js
restify listening at http://0.0.0.0:8080通过curl命令测试,服务器返回HTTP状态码200和一个application/json类型的内容(事实上这里不是)
$ curl -is http://localhost:8080/hello/roy
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version
Access-Control-Expose-Headers: X-Api-Version, X-Request-Id, X-Response-Time
Server: restify
X-Request-Id: ec3e9e55-7083-4e12-93ee-9c24a0c5c398
Access-Control-Allow-Methods: GET
Connection: close
Content-Length: 5
Content-MD5: 65tW24XBT3r1jLUpw0o0Fw==
Content-Type: application/json
Date: Sun, 19 Feb 2012 16:14:13 GMT
X-Response-Time: 3
"hello roy"###特性 接触到restify是因为内部系统需要一个手机归属地的查询接口,基于nodejs和redis的高性能实现,决定快速实现一个,当时也很自然地选择了express作为web层。但express始终是一个Web MVC框架,它包含了一些我不太需要的功能实现(i.e., templating/rendering)。而我只是需要一个更纯粹的API接口而已–接收请求然后返回一个JSON结果集。
后来从推上找到了restify时,我就觉得这才是我想要的:
- 路由 - 基本等同于express/sinatra的路由方式
- 路由正则表达式支持
- 版本化支持
 
- 基本等同于
- 自动选择内容格式进行响应,并可以自定义格式 
- 内置REST风格的错误处理机制,重载了400和409来解析应答,得到一个包含 - code和- message的JSON对象。也可以子类化- restify.RestError实现自己错误代码和信息。- 已实现的RestError: - RestError
- BadDigestError
- BadMethodError
- InternalErrorError
- InvalidArgumentError
- InvalidContentError
- InvalidCredentialsError
- InvalidHeaderError
- InvalidVersionError
- MissingParameterError
- NotAuthorizedError
- RequestExpiredError
- RequestThrottledError
- ResourceNotFoundError
- WrongAcceptError
 
- 插件机制 
- DTrace支持,这个绝对是调式、诊断和性能测量利器 
虽然现在restify还是初生婴儿,我还是把上面提到的手机归属地查询接口改用了restify来实现了一个moquery。
正如官方描述一样
restify is a smallish framework, similar to `express` for building REST APIs.node-restify简介的更多相关文章
- 01 Node.js简介, 安装&配置
		Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开 ... 
- 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」
		此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ... 
- node.js 简介
		简介: Node,是一个可以让 JavaScript 运行在服务器端的平台.它可以让 JavaScript 脱离浏览器的束缚运行在一般的服务器环境下 Node.js 是一个为实时Web ... 
- 写给Java开发者的Node.JS简介
		前言 今天上推特看见这篇文章,点进去发现是新货. 正好最近想入Node的坑,又有一些Java基础,所以希望翻译出来给大家,同时也让自己加深理解. 才疏学浅,如有不妥之处请指正. 原文链接:Node f ... 
- 一起来学node.js吧 node school简介
		node.js这几年火爆的简直丧心病狂,去lagou.com查查node.js的职位,那叫一个多. 要说火爆到什么程度,竟然有一个网站专门去教大家学习node.js, Node School. 进去逛 ... 
- Node.js简介
		Node核心思想:1.非阻塞:2.单线程:3.事件驱动. 在目前的web应用中,客户端和服务器端之间有些交互可以认为是基于事件的,那么AJAX就是页面及时响应的关键.每次发送一个请求时(不管请求的数据 ... 
- node.js入门系列(一)--Node.js简介
		什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是一 ... 
- 【个人笔记】《知了堂》node.js简介及创建应用
		Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架.Node.js自带运行时环境可在Javascript脚本的基础上可以解释和执行 ... 
- Node.js学习(第一章:Node.js简介)
		Node.js是什么? Node.js 诞生于 2009 年,由 Joyent 的员工 Ryan Dahl 开发而成, 目前官网最新版本已经更新到 12.0.0版本,最新稳定的是10.15.3.Nod ... 
- Node的简介
		从开始学习node到现在已经有半年多了,中间没有做过什么实际工作中的项目,所以感觉自己的知识有些匮乏,但是我还是要写这些文章,因为工作中的需要用node来开发后台环境,再加上我对这些知识记得不多,都是 ... 
随机推荐
- jsp与Servlet
- python笔记一
			好奇,想一探究竟.安装就出点小问题,win7,64位,一直卡在这里不动了? 只好取消.第二天安装仍是如此. 于是下载Windows6.1-KB2999226-x64.msu,安装,仍卡顿不动: 于是找 ... 
- C# 自定义序列化问题
			public class overdue { public int overdueTimes { get; set; } /// <summary ... 
- C#通过安全证书生成签名和验签辅助类
			using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ... 
- 创建一个swift项目
			笔者认为你已经有了oc的开发基础,流程是一样的,选择开发语言为swift即可.这里主要说明一下一些常用的配置: 一般我们不使用XIB和storyboard,所以在系统自动创建的文件中删除main.st ... 
- mvc多个按钮的提交方法
			转载地址:http://www.cnblogs.com/wuchang/archive/2010/01/29/1658916.html 有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能, ... 
- Easyui CSS式样重写
			<link rel="stylesheet" type="text/css" href="../../themes/default/easyui ... 
- 深入理解JS异步编程二(分布式事件)
			PubSub模式 从原生的js角度,我们要监听某事件的方法就是利用addEventListener方法,但是当我们的页面趋于复杂,比如要向某个元素添加多个处理事件,那么就要用一个封装函数汇集多个处理函 ... 
- sublime好看的主题webstrom破解
			http://equinusocio.github.io/material-theme/ sublime jsDoc注释 Doc Blockr webstrom破解 http://15.idea.la ... 
- 【C#】 一些不常用,很容易混淆的知识点
			[C#] 一些不常用但很容易混淆的知识点 1. 访问修饰符 internal ,译为内部的, 在同一个程序集中可访问,它的内部是相对与程序集的,可不能想当然了 2. String.Compare 这个 ... 
