Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开始在SPA应用程序中组织端点_Javascript_Angularjs_Reactjs_Vue.js_Single Page Application - Fatal编程技术网

Javascript 开始在SPA应用程序中组织端点

Javascript 开始在SPA应用程序中组织端点,javascript,angularjs,reactjs,vue.js,single-page-application,Javascript,Angularjs,Reactjs,Vue.js,Single Page Application,我需要组织URL的策略 我们的应用程序有大约150个URL。有些非常简单,没有任何路由参数。而另一些路由参数中通常包含一个以上的路由参数。例如,它可能是这样的 api/学校/班级 api/学校/1/班级/2/学生 api/学校/班级/重估值 因此,在第一部分中,它没有参数,而第二部分有两个参数,最后第三部分有1个参数,但最后一部分不是资源,而是动作 我不想将url存储在我们使用它的地方,因为维护url将是一场技术噩梦。我希望我们能有一个文件api.js或多个文件,比如api/School.js,

我需要组织URL的策略

我们的应用程序有大约150个URL。有些非常简单,没有任何路由参数。而另一些路由参数中通常包含一个以上的路由参数。例如,它可能是这样的

  • api/学校/班级
  • api/学校/1/班级/2/学生
  • api/学校/班级/重估值
  • 因此,在第一部分中,它没有参数,而第二部分有两个参数,最后第三部分有1个参数,但最后一部分不是资源,而是动作


    我不想将url存储在我们使用它的地方,因为维护url将是一场技术噩梦。我希望我们能有一个文件
    api.js
    或多个文件,比如
    api/School.js
    api/Teacher.js
    来存储文件。

    在express中,你称之为路由器

    const express = require('express');
    const app = express();
    const schoolRouter = require('./routers/school');
    
    //...
    
    app.use('/api/school', schoolRouter); // Forwards any requests to the schoolrouter
    
    //...
    
    School.js:

    // The router works just like express app (which is also a router)
    const schools = require('express').Router();
    
    // we used example.com/api/schools/something to get here
    // but the router only cares about what comes next
    schools.get('/', function(req, res, next) {
      // res.send()
    });
        
    // Get a single school (etc, you get the point)
    schools.get('/:schoolId', function(req, res, next) {
      let id = req.params.schoolId;
      // get data from server and res.send()
    });
    
    //...
    
    
    module.exports = schools;
    
    您可以链接路由器,但因为您只有部分路由,所以参数可能会丢失。因此,通常的做法是将参数存储到
    req
    对象

    schools.use('/:schoolId/classes', function(req, res, next) {
      req.schoolId = req.params.schoolId;
      next()
    }, classesRouter);
    

    通过这种方式,我们可以随时访问
    req.schoolId

    在express中,您称之为路由器

    const express = require('express');
    const app = express();
    const schoolRouter = require('./routers/school');
    
    //...
    
    app.use('/api/school', schoolRouter); // Forwards any requests to the schoolrouter
    
    //...
    
    School.js:

    // The router works just like express app (which is also a router)
    const schools = require('express').Router();
    
    // we used example.com/api/schools/something to get here
    // but the router only cares about what comes next
    schools.get('/', function(req, res, next) {
      // res.send()
    });
        
    // Get a single school (etc, you get the point)
    schools.get('/:schoolId', function(req, res, next) {
      let id = req.params.schoolId;
      // get data from server and res.send()
    });
    
    //...
    
    
    module.exports = schools;
    
    您可以链接路由器,但因为您只有部分路由,所以参数可能会丢失。因此,通常的做法是将参数存储到
    req
    对象

    schools.use('/:schoolId/classes', function(req, res, next) {
      req.schoolId = req.params.schoolId;
      next()
    }, classesRouter);
    
    通过这种方式,我们可以在链下游的任何时间访问
    req.schoolId