node.js - 我想在 node.js express 中自动化模型和路由部分
问题描述
我想在 node.js express 中自动化模型和路由部分。例如,路由的 index.js 原本是这样的。
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', {title:'Express' });
});
router.get('/a1', function(req, res, next) {
res.render('a1', {title:'Repetitive router.get' });
});
router.get('/a2', function(req, res, next) {
res.render('a2', {title:'Repetitive router.get' });
});
router.get('/a3', function(req, res, next) {
res.render('a3', {title:'Repetitive router.get' });
});
module.exports = router;
我不想每次都对它进行硬编码 router.get 功能部分
var express = require('express');
var router = express.Router();
var AAA = require('myGetAll');
AAA.add('/a1', a1, {title:'Repetitive router.get' });
AAA.add('/a2', a2, {title:'Repetitive router.get' });
AAA.add('/a3', a3, {title:'Repetitive router.get' });
/* GET home page. */
for(let i = 0; i <AAA.count(); i++){
router.get(AAA.itemPath[i], function(req, res, next) {
res.render(AAA.itemFile[i], AAA.itemParameter[i]);
});
}
module.exports = router;
我想这样做。这样做可以吗?
如果不是 MVC 之类的 express,但是推荐一个代码自动化更好的框架。
谢谢你。
解决方案
有一个很好的方法可以使用路由参数来实现这一点。
router.get('/:param(a+[1-3])', function(req, res, next) {
const parameter = req.params.param;
res.render(parameter, {title:`Repetitive router.get this ${parameter}` });
});
您可以将可选的正则表达式传递给路由以匹配所需的参数,或者只处理代码逻辑中的输入(在这种情况下,我添加了一个正则表达式来匹配 a1-a3)
推荐阅读
- tensorflow - 如何准备稀疏数据以在 TF 中构建自编码器?
- django - Django Admin 自定义内联模型
- list - 如何通过列表中的索引从元组中选择元素?
- java - 将 JAR 放入 JVM 库与项目库有什么区别?
- android - 如何使用 ffpeg 在视频上正确添加适合 XY 的水印图像
- python - 如何读取和操作字典和文件 python 2.7
- excel - Excel Range.Find 没有按照我想象的方式工作
- pdf - 使用 Itext 填充 PDF 字段
- laravel - Laravel 配置:清除导致崩溃
- webstorm - WebStorm,无法抑制对未定义函数的检查