多页Node.js服务器无路由Bloat
Multipage Node.js Server Without Routing Bloat?
我可以为每个页面设置一个不需要唯一路由的多页Node.js web服务器吗?
我使用Node和Express设置了一个简单的HTTP服务器,使用EJS作为视图引擎。我的路由目前看起来是这样的:
// routing
app.get('/', routes.index);
app.get('/hig', routes.hig);
app.get('/proto', routes.proto);
app.get('/design', routes.design);
app.get('/process', routes.process);
app.get('/demo', routes.demo);
app.get('/api', api.index);
app.get('/api/rules', api.list);
app.get('/api/rules/:id', api.ruleid);
我希望能够轻松地更新我的网站,使其拥有/hig/section1
和/hig/section2
等页面,而无需每次更新路由表并重新启动服务器。更重要的是,我希望能够快速轻松地制作demo
的多个版本,并能够链接到它们。
例如,创建一个新的演示并将用户链接到/demo/version23
,同时将其他人链接到/demo/version 35
,这样我就可以在不破坏以前的演示站点的情况下演示不同的功能。/demo/version108
及其后的版本很快就会存在,因此最好有一种合理的方法来创建这些版本,而不需要108+条路由。
到目前为止,我唯一成功的方法就是更新路由表。有没有其他方法可以让我指向路由表中的不同页面,从而更容易地添加新页面?
您应该考虑将ex的url变量的一部分作为/hig/:部分。
然后,您应该将section作为一个参数,您可以使用它来映射到不同的内容、页面或执行您想要的任何其他逻辑。
在我的express api中,我有一个通配符get。端点var解析关键字,然后您决定如何处理它。在我的数据库中,我有一些if语句来更改数据库模型等,但你不需要。。。我建议保持404发送,所以如果有人点击了不想要的url,你可以给他们任何状态码。
app.get('/:endpoint', function (req, res) {
var endpoint = req.params.endpoint;
if( endpoint == 'something' ){
} else if( endpoint == 'something' ){
} else { return res.send(404, { erorr: "That resource doesn't exist" }); }
// Display the results
});
我实现了一个简单的演示项目来实现多应用程序结构。
https://github.com/hitokun-s/node-express-multiapp-demo
有了这种结构,您可以轻松地独立设置和维护每个应用程序
我希望这对你有帮助。
- Emberjs应用程序加载在除Index之外的所有路由上
- 正在使用$location.path(.)路由ng视图
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 未激发路由的控制器属性上的观察者
- AngularJS ui路由器html5模式中断路由
- 发送json对象或使用express路由呈现视图
- 使用主干网和rails的静态页面路由
- 如何使用Passport保护路由终结点
- 有没有办法用routerLink/router.navigation附加查询/路由参数
- Nodejs和express路由,如何处理客户端的承诺
- TinyMCE实例在切换角度路由选项时会消失
- 什么'在Express中路由时,应用程序级中间件和路由器级中间件之间的区别是什么
- 使用Ampersand.js路由模块化应用程序
- Angular 2路由已弃用:如何检测CanActivate
- 格式化获取请求的路由
- 在node-js路由中发出http请求
- 无法运行php代码,有角度路由问题
- 更改路由后,运行一次js脚本
- 如何使用服务器上的react路由器处理所有可能的路由
- 多页Node.js服务器无路由Bloat