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

转载于:https://www.cnblogs.com/auh2010006/p/5716979.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值