Nodejs in Visual Studio Code 03.学习Express

1.开始

下载源码:https://github.com/sayar/NodeMVA

Express组件:npm install express -g(全局安装)

 

2.ExpressRest

打开目录08_ExpressREST

app.js

var express = require('express');
var app = express();

//捕获GET方法,并处理返回一个Json,比C#写Json简单多了啊 app.get('/', function (req, res) { res.json({ message: 'hooray! welcome to our api!' }); });
//侦听8080端口 app.listen(process.env.PORT || 8080);

现在项目都用html/js了,写个node几行代码搞定json restful,还带web服务器,感觉神清气爽啊!

打开CMD让项目运行起来

$ cd 08_EXPRESSREST
$ node app

 

3.AdvancedRESTAPI

打开目录12_AdvancedRESTAPI

app.js:初始化Express环境注册路由

routes/api.js :rest api的具体实现代码

app.js中,注册路由代码十分简单

//初始化一个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.

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;

  

posted on 2016-04-05 17:35  赵云会编程  阅读(336)  评论(0编辑  收藏  举报