zoukankan      html  css  js  c++  java
  • [Express] Level 3: Reading from the URL

    City Search

    We want to create an endpoint that we can use to filter cities. Follow the tasks below to to create this new route.

    Create a new route for GET request to '/cities'. The second argument should be a callback function which takes request and response.

    app.get('/cities', function(request , response){
        
    });

    From inside of our route, create an if statement that checks whether a value is set to the query string parameter search.

    app.get('/cities', function(request , response){
      if(request.query.search){
      
      }
    });

    Inside of the if block, call the citySearch() function, passing in the user submitted parameter for search. Then return the result of the function as a JSON response.

    app.get('/cities', function(request , response){
      var keyword = request.query.search;
      if(keyword){
          response.json(citySearch(keyword));
      }
    });
    var express = require('express');
    var app = express();
    
    var cities = ['Caspiana', 'Indigo', 'Paradise'];
    
    app.get('/cities', function(request , response){
      var keyword = request.query.search;
      if(keyword){
          response.json(citySearch(keyword));
      }
    });
    
    function citySearch (keyword) {
      var regexp = RegExp(keyword, 'i');
      var result = cities.filter(function (city) {
        return city.match(regexp);
      });
    
      return result;
    }
    
    app.listen(3000);

    Dynamic Route Variables

    Consider the following Dynamic Route:

    app.get('/cities/:name', function (request, response) {
      // ...
    })

    When requests come in for this route, how can we access the city name submitted by the user?

    Answer:

    requst.params.name

    City Information

    Now lets look up some information about the city.

    Inside of our dynamic route, grab the name submitted by the user, lookup the city information on the cities object and assign it to the cityInfovariable.

    var cities = {
      'Lotopia': 'Rough and mountainous',
      'Caspiana': 'Sky-top island',
      'Indigo': 'Vibrant and thriving',
      'Paradise': 'Lush, green plantation',
      'Flotilla': 'Bustling urban oasis'
    };
    
    app.get('/cities/:name', function (request, response) {
      var cityInfo,
          name;
      name = request.params.name;
      cityInfo = cities[name];
    });

    Check to see if cityInfo exists and if so, respond with the cityInfo in JSON format.

    app.get('/cities/:name', function (request, response) {
      var cityInfo,
          name;
      name = request.params.name;
      cityInfo = cities[name];
      
      if(cityInfo){
          response.json(cityInfo);
      }
    });

    If cityInfo does not exist, respond with a 404 HTTP status code and a JSON message that says "City not found".

    app.get('/cities/:name', function (request, response) {
      var cityInfo,
          name;
      name = request.params.name;
      cityInfo = cities[name];
      
      if(cityInfo){
          response.json(cityInfo);
      }else{
          response.status(404).json("City not found");
      }
    });
    var express = require('express');
    var app = express();
    
    var cities = {
      'Lotopia': 'Rough and mountainous',
      'Caspiana': 'Sky-top island',
      'Indigo': 'Vibrant and thriving',
      'Paradise': 'Lush, green plantation',
      'Flotilla': 'Bustling urban oasis'
    };
    
    app.get('/cities/:name', function (request, response) {
      var cityInfo,
          name;
      name = request.params.name;
      cityInfo = cities[name];
      
      if(cityInfo){
          response.json(cityInfo);
      }else{
          response.status(404).json("City not found");
      }
    });
    
    app.listen(3000);
  • 相关阅读:
    PHP输出中文乱码的问题(转)
    phpmyadmin导出数据库为什么是php文件
    phpmyadmin登陆提示#2002 无法登录 MySQL 服务器和设置自增
    phpMyAdmin配置及 错误 缺少 mysqli 扩展。请检查 PHP 配置
    利用eclipse开发php<转>
    apache 2.4 You don't have permission to access / on this server
    (转)如果“打开方式”里面没有想要的打开方式,怎样创建一种文件打开方式?
    (转)安装 Apache 出现 <OS 10013> 以一种访问权限不允许的方式做了一个访问套接字的尝试
    关于ISAPI和CGI限制,这个要设为允许
    Sqlserver数据库日志太大如何快速删除
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4143325.html
Copyright © 2011-2022 走看看