是开始表达这样的“const app = require('express')()”被认为是不好的做法?

时间:2017-02-10 22:44:21

标签: javascript node.js express

所以标题说明了一切。从未见过有人使用这种语法。

const app = require('express')()

我喜欢保持主要的js文件精简,并且所有模块都包含在内,所以我只有15行包括评论。

谷歌没有帮助,但在这里找不到答案。

根据需要调用快递是不好的做法吗?

4 个答案:

答案 0 :(得分:8)

通常,您的代码应该是可靠地满足您的要求的最简单,最清晰的方式。任何符合这些简单指南的代码在任何人的书中都不会被视为不好的做法。

可能会对所需的编码风格产生其他影响,例如团队风格指南,文件/模块/项目中已存在的编码样式以及您可能想要进行测试,调试或重用的某些事项。但是,既然你没有提到任何这些影响,我会假设他们不在这里。

因此,考虑到第一段,只要您不需要访问此模块中其他位置的express模块,那么执行:

const app = require('express')();

确实是实现目标的最简单,最清晰的方式,不应被视为不良做法 - 实际上它应被视为一种良好做法

另一方面,如果你这样做:

const app = require('express')();

....


const mainRouter = require('express').Router();


....

const subRouter = require('express').Router();


....

app.use(require('express').static('public'));

然后,如果你将express模块​​加载到它自己的变量中,那么你就可以使用更简单,更少冗余的代码(并且可能会更快一些,因为函数调用更少),然后你可以在该模块的其他地方使用它:

const express = require('express');
const app = express();

....


const mainRouter = express.Router();


....

const subRouter = express.Router();


....

app.use(express.static('public'));

答案 1 :(得分:1)

需要考虑的是express模块会公开您稍后可能想要使用的其他功能(例如express.static)。在您的情况下,您必须再次require表达才能访问它:

app.use(require('express').static());

除此之外没有任何理由不良做法"。它只取决于你打算从模块中利用什么。

答案 2 :(得分:0)

简单地说,为 重复使用 更好地与读者沟通 创建标识符。

<小时/> 更多关于require()

的想法

由于require()负责加载和缓存模块,因此有些人认为它应该在app初始化之前放置。我看到许多示例代码遵循这种风格。但是我认为这实际上取决于具体项目中如何确保包/代码质量。

答案 3 :(得分:0)

这是不错的做法,而是以下代码的简短版本

var express = require('express');
var app     = express();
相关问题