Javascript 开始在SPA应用程序中组织端点
我需要组织URL的策略 我们的应用程序有大约150个URL。有些非常简单,没有任何路由参数。而另一些路由参数中通常包含一个以上的路由参数。例如,它可能是这样的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,
api/学校/班级
api/学校/1/班级/2/学生
api/学校/班级/重估值
我不想将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