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