crossplatform---Nodejs in Visual Studio Code 03.学习Express
1.开始
下载源码:https://github.com/sayar/NodeMVA
Express组件:npm install express -g(全局安装)
2.ExpressRest
打开目录08_ExpressREST
app.js
1
2
3
4
5
6
7
8
|
var express = require( 'express' ); var app = express(); <br> //捕获GET方法,并处理返回一个Json,比C#写Json简单多了啊 app.get( '/' , function (req, res) { res.json({ message: 'hooray! welcome to our api!' }); }); <br> //侦听8080端口 app.listen(process.env.PORT || 8080); |
现在项目都用html/js了,写个node几行代码搞定json restful,还带web服务器,感觉神清气爽啊!
打开CMD让项目运行起来
1
2
|
$ cd 08_EXPRESSREST $ node app |
3.AdvancedRESTAPI
打开目录12_AdvancedRESTAPI
app.js:初始化Express环境注册路由
routes/api.js :rest api的具体实现代码
app.js中,注册路由代码十分简单
1
2
3
4
5
6
7
8
|
//初始化一个api.js实例 var api = require( './routes/api' ); //初始化一个express.js实例 var app = express(); //将指定url路由处理程序指向api.js文件 app.use( '/api' , api); |
routes/api.js中对每个api后的url按GET\PUT\POST\DELETE分别处理
Resource |
GET |
PUT |
POST |
DELETE |
Collection URI, such as http://api.example.com/v1/dogs/ |
List all the dogs |
Replace all the dogs with a new collection of dogs. |
Create a new dog in the collection. |
Delete the entire dog collection. |
Element URI, such as http://api.example.com/v1/dog/1 |
Get a specific dog. |
Replace a dog in the collection with another dog. |
Not used. |
Delete the dog from the collection. |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
var express = require( 'express' ); var router = express.Router(); var dogs = [ { "dog_id" : "0" , "dog_name" : "Ginger" }, { "dog_id" : "1" , "dog_name" : "Ruby" }, { "dog_id" : "2" , "dog_name" : "Buddy" } ]; /* GET all dogs */ router.get( '/dogs/' , function (req, res, next) { res.json(dogs); }); /* PUT replace all dogs */ router.put( '/dogs/' , function (req, res, next) { console.log(req.body); dogs = req.body; res.json({ "STATUS" : "200 OK" }); }); /* POST create a new dog */ router.post( '/dogs/' , function (req, res, next) { dogs.push(req.body) res.json({ "STATUS" : "200 OK" }); }); /* DELETE delete the entire dog collection */ router. delete ( '/dogs/' , function (req, res, next) { dogs = []; res.json({ "STATUS" : "200 OK" }); }); /* GET a specific dog */ router.get( '/dogs/:id' , function (req, res, next) { var i = 0; var dog = null ; for (i = 0; i != dogs.length; i++){ if (dogs[i].dog_id == req.params.id){ dog = dogs[i]; break ; } } dog !== null ? res.json(dog) : res.json({ "STATUS" : "404 NOT FOUND" }) }); /* PUT replace a specific dog with another dog */ router.put( '/dogs/:id' , function (req, res, next) { var i = 0; var dog = null ; for (i = 0; i != dogs.length; i++){ if (dogs[i].dog_id == req.params.id){ dog = dogs[i]; break ; } } if (dog !== null ){ dog.dog_name = req.body[ 'dog_name' ] res.json({ "STATUS" : "200 OK" }); } else { res.json({ "STATUS" : "404 NOT FOUND" }); } }); /* DELETE a specific dog from the collection */ router. delete ( '/dogs/:id' , function (req, res, next) { var i = 0; for (i = 0; i != dogs.length; i++){ if (dogs[i].dog_id == req.params.id){ dogs.splice(i, 1); return res.json({ "STATUS" : "200 OK" }); } } return res.json({ "STATUS" : "404 NOT FOUND" }); }); module.exports = router; |
http://www.cnblogs.com/mengkzhaoyun/p/5355796.html
crossplatform---Nodejs in Visual Studio Code 03.学习Express的更多相关文章
- Nodejs in Visual Studio Code 03.学习Express
1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录 ...
- Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...
- Nodejs in Visual Studio Code 02.学习Nodejs
1.开始 源码下载:https://github.com/sayar/NodeMVA 在线视频:https://mva.microsoft.com/en-US/training-courses/usi ...
- Nodejs in Visual Studio Code 14.IISNode与IIS7.x
1.开始 部署IISNode环境请参考:Nodejs in Visual Studio Code 08.IIS 部署Nodejs程序请参考:Nodejs in Visual Studio Code 1 ...
- Nodejs in Visual Studio Code 11.前端工程优化
1.开始 随着互联网技术的发展,企业应用里到处都是B/S设计,我有幸经历了很多项目有Asp.Net的,有Html/js的,有Silverlight的,有Flex的.很遗憾这些项目很少关注前端优化的问题 ...
- Nodejs in Visual Studio Code 10.IISNode
1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...
- Nodejs in Visual Studio Code 04.Swig模版
1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...
- Nodejs in Visual Studio Code 01.简单介绍Nodejs
1.开始 作者自己:开发人员,Asp.Net , html / js , restful , memcached , oracle ,windows , iis 目标读者:供自己以后回顾 2.我看No ...
- crossplatform---Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...
随机推荐
- PBOC
http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完 ...
- ocx中调用ocx
BOOL CXXXApp::InitInstance()中加入一句AfxEnableControlContainer();
- js中退出语句break,continue和return 比较 (转)
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...
- php 静态方法和非静态方法的调用说明
1. php类中,静态方法调用当前类的非静态方法必须用self关键字,不能用$this 2. php类中,公有方法调用私有方法使用$this关键字,只能实例化调用 3. php类中,公有方法调用私有方 ...
- 【37.38%】【codeforces 722C】Destroying Array
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 二次封装CoreData
(1)创建一个Data Model文件.命名为MyModel.xcdatamodeld (2)创建Users表,加入如图的字段 (3)创建NSManagedObject subclass表实体文件 ( ...
- 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(9)链表
我们至少可以通过两种结构来存储数据 数组 1.需要一整块连续的存储空间,内存中可能没有 2.插入元素,删除元素效率极低. 3.查找数据快 链表 1.查找效率低 2.不需要一块连续的内存空间 3.插入删 ...
- 【25.33%】【codeforces 552D】Vanya and Triangles
time limit per test4 seconds memory limit per test512 megabytes inputstandard input outputstandard o ...
- Eclipse Che安装入门和使用(一)
Eclipse Che序列博文如下: 安装和调试篇:Eclipse Che安装入门和使用(一) Web进阶篇:Eclipse Che开发Spring Web应用(入门) (二) 本文摘要: Eclip ...
- KVO的使用(1)
1.在某个类中添加下面方法: -(void)viewWillAppear:(BOOL)animated{ [[NSNotificationCenter defaultCenter] addObserv ...