zoukankan      html  css  js  c++  java
  • @angular/cli项目构建--http(2)

    客户端GET设置参数查询:

    search() {
        const params = new HttpParams()
        .set('userName', this.userName)
        .set('fullName', this.fullName);
        this.http.get('/api/users', {params})
          .subscribe(data => {
            this.users = data['users'];
          });
      }
    reset() {
        this.userName = '';
        this.fullName = '';
        this.search();
      }

    node服务器响应:

    app.get('/users', (req, res) => {
        if (_.isEmpty(req.query.userName)&&_.isEmpty(req.query.fullName)) {
            res.json({users: users});
        } else {
            res.json({
                users: users.filter(
                    (user) =>
                    ((user.userName).indexOf(req.query.userName)) > 0 ||
                    ((user.fullName).indexOf(req.query.fullName)) > 0
                )
            });
        }
    });

    跨域设置:

    app.all('*', function (req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
        res.header("X-Powered-By", ' 3.2.1');
        res.header("Content-Type", "application/json;charset=utf-8");
        next();
    });

     bodyParse use:

    var express = require('express')  
    var bodyParser = require('body-parser')  
    var app = express()  
    // parse application/x-www-form-urlencoded   
    app.use(bodyParser.urlencoded({ extended: false }))//extended为false表示使用querystring来解析数据,这是URL-encoded解析器  
    // parse application/json   
    app.use(bodyParser.json())//添加json解析器  
    app.use(function (req, res) {  
      res.setHeader('Content-Type', 'text/plain')  
      res.write('you posted:
    ')  
      res.end(JSON.stringify(req.body, null, 2))  
    }) 

    var jsonParser = bodyParser.json()//获取JSON解析器中间件  
    // create application/x-www-form-urlencoded parser   
    var urlencodedParser = bodyParser.urlencoded({ extended: false })//url-encoded解析器  
    // POST /login gets urlencoded bodies   
    app.post('/login', urlencodedParser, function (req, res) {//注册URL解析器  
      if (!req.body) return res.sendStatus(400)  
      res.send('welcome, ' + req.body.username)  
    })  
    // POST /api/users gets JSON bodies   
    app.post('/api/users', jsonParser, function (req, res) {//使用json中间件获取json数据  
      if (!req.body) return res.sendStatus(400)  
      // create user in req.body   
    }) 
    // parse various different custom JSON types as JSON   
    app.use(bodyParser.json({ type: 'application/*+json' }))  
    // parse some custom thing into a Buffer   
    app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }))  
    // parse an HTML body into a string   
    app.use(bodyParser.text({ type: 'text/html' }))  

     GET,POST,DELTE,PUT:

    app.get('/users', function (req, res) {
        if (_.isEmpty(req.query.userName) && _.isEmpty(req.query.fullName)) {
            res.json({users: users});
        }
        else {
            res.json({
                users: users.filter(function (user) {
                    return ((user.userName).indexOf(req.query.userName)) > 0 ||
                        ((user.fullName).indexOf(req.query.fullName)) > 0;
                })
            });
        }
    });
    app.post('/users', jsonParser, urlencodedParser, function (req, res) {
        var user = req.body.user;
        users.push(user);
        res.send('save success');
    });
    
    app.delete('/users/:id', function (req, res) {
        const deleteUser = users.findIndex(function (user) {
            return user.id === req.params.id;
        });
        users.splice(deleteUser, 1);
        res.send('delete success');
    });
    app.put('/api/tour/:id',function (req,res) {
        var id = req.params.id;
        var p = tours.some(function (p) {
           return p.id == id;
        });
        if(p){
           if(req.query.name) tours[id].name = req.query.name;
           if(req.query.price) tours[id].price = req.query.price;
           res.json({success:true,tours:tours,p:p});
        }else{
           res.json({error:'No such tour exists.'});
        }
    });
  • 相关阅读:
    Oracle 字符串转多行(REGEXP_SUBSTR)
    Word使用技巧总结
    VirtualBox配置安装入门(Linux连不上网络和设置共享文件夹)
    (vm/vb)虚拟机复制或者拷贝之后连不上网络怎么处理?
    Vmware共享文件夹安装设置方法(window与Linux使用共享文件夹)
    软删除和硬删除的处理方法
    banner小点点
    常用标签
    优雅批量删除redis匹配数据
    rabbitmq(三)- 交换机
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/7890101.html
Copyright © 2011-2022 走看看