繁体   English   中英

在node.js中设置很多路由

[英]setting up a lot of routes in node.js

我创建了一个网页,以在本地使用它作为保存有关随机主题和大学课程的信息的方法。 我有很多路线,如下所示:

//app.js - using node and express
    app.get('/page1', function(req, res){
        res.render('page1');
    });
    app.get('/page2', function(req, res){
        res.sendFile('views/page2.html', { root: __dirname });
    });

这些路由中的每一个都有一个.ejs文件或.html文件,它们都非常小。
我认为我没有犯任何重大错误,但是我有一种感觉,我没有使用“最佳实践”,或者至少可以做一些不同的事情。

  • 使用很多这样的路线有什么问题吗? 应该更改一些内容以优化页面的呈现吗?
  • 如前所述,我在大多数页面上使用.ejs ,并且大多数页面具有相同的header.ejsfooter.ejs 每次我更改具有相同页眉/页脚的页面时,是否会再次加载它们,或者由于它们使用的是相同的页眉/页脚文件,服务器仅请求两者之间的内容?
  • 使用res.render和res.send有什么区别?
  • 我应该使用其他语法const express = require('express');const express = require('express'); const app = express(); 而不是var express = require('express'); var app = express();

``或这个

app.get('/page1', (req, res) => {
    res.render('page1');
});

而不是上面的第一段代码。

谢谢! :d

使用很多这样的路线有什么问题吗? 应该更改一些内容以优化页面的呈现吗?

技术上没有错。 许多简单的res.sendFile()路由可能都可以用一个express.static()中间件语句代替,以简化您的代码。

许多没有将任何自定义数据传递给EJS的res.render()路由也可能由一个单独的中间件代替,该中间件处理模板文件的整个目录(及其对应的路由)或文件列表。 这比单独阐明每条路线要耗费更多的精力

如前所述,我在大多数页面上都使用.ejs,并且大多数页面具有相同的header.ejs和footer.ejs。 每次我更改具有相同页眉/页脚的页面时,是否会再次加载它们,或者由于它们使用的是相同的页眉/页脚文件,服务器仅请求两者之间的内容?

EJS将模板缓存在内存中(除非您禁用缓存),因此页眉和页脚模板不会一次又一次地从磁盘加载。

使用res.render和res.send有什么区别?

这些已在文档中全面介绍。 简而言之, res.render()支持您的模板引擎和本地数据以馈入模板引擎,以允许其将数据添加到模板。 res.send()只是发送您给它的原始内容。

我应该使用其他语法吗:const express = require('express'); &const app = express(); 而不是var express = require('express'); &var app = express();

每当您声明的变量应获得其初始值且不再被分配时,最好使用const 除了某些编码安全性之外,有时还可以使解释器在使用变量时进行更多优化(因为不能更改其值)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM