• 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按GETPUTPOSTDELETE分别处理

    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;
    

      

  • 相关阅读:
    广域网(ppp协议、HDLC协议)
    0120. Triangle (M)
    0589. N-ary Tree Preorder Traversal (E)
    0377. Combination Sum IV (M)
    1074. Number of Submatrices That Sum to Target (H)
    1209. Remove All Adjacent Duplicates in String II (M)
    0509. Fibonacci Number (E)
    0086. Partition List (M)
    0667. Beautiful Arrangement II (M)
    1302. Deepest Leaves Sum (M)
  • 原文地址:https://www.cnblogs.com/mengkzhaoyun/p/5355796.html
Copyright © 2020-2023  润新知