Begin
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。
表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。
本文主要阐述使用node.js的express 框架实现一个ToDo List(任务列表)的Restful 接口。基本的功能包括用户的登录注册、添加任务、完成任务、查看任务等。 最终所有的Api可以在Postman中进行测试。
完整的项目地址: https://github.com/superzhan/ToDo
开发环境
mac, webstom, monogoDB , node.js 6.10.1 ,express 4.01
安装、创建express项目还挺简单的,官方还提供一个项目生成器。
npm install express-generator -g
执行命令就可以全局安装一个express的项目生成器。新建项目的时候执行命令
express todo -e
新建一个名称为 todo 的express 项目,使用ejs 模板。
执行 npm install
,安装相应的模块。
执行 npm start
, 运行工程。可以通过 http://localhost:3000 访问。
基本的Restful 接口示例
新建的工程中会有一些基本的代码。express 中实现Restful 接口是一件相当简单的事情。
添加一个简单的api接口 testAPI. 在 routes/index.js 添加代码
router.get('/testApi',function(req, res, next) {
res.json({result:'hi ,this is api result'});
});
重新启动工程后,可以在浏览器通过http://localhost:3000/testApi 访问这个接口。这个接口使用了GET方法。
在添加一个Post 方法的接口。
router.post('/testApi',function(req, res, next) {
res.json({result:'hi ,this is api result'});
});
这个接口可以再Postman中,通过POST 方法来访问。
简单添加和获取任务
添加一个addItem 的接口,把客户端发送过来的数据处理之后,插入到数据库中。
router.post('/addItem',function(req,res,next){
var item = {};
item.note =req.body.note;
item.completed=false;
item.updated_at =timeTool.getCurDate();
todoSchema.create(item,function(err,post){
if(err)
{
next(err);
}else
{
res.redirect(