标题已经说明了一切。从来没有见过有人使用这种语法。
const app = require('express')()
我喜欢保持主 js 文件的简洁,所有东西都在模块中,因此我只有 15 行代码,包括注释。
谷歌并没有帮助我,在这里也没有找到答案。
使用 require 的同时调用 express 是否是一种不好的做法?
标题已经说明了一切。从来没有见过有人使用这种语法。
const app = require('express')()
我喜欢保持主 js 文件的简洁,所有东西都在模块中,因此我只有 15 行代码,包括注释。
谷歌并没有帮助我,在这里也没有找到答案。
使用 require 的同时调用 express 是否是一种不好的做法?
一般来说,你的代码应该是最简单、最清晰可靠地满足你要求的方式。遵循这些简单指南的任何代码都不会被认为是不良实践。
可能会有其他影响所需的编码风格,例如团队风格指南、文件/模块/项目中已经存在的编码风格以及您可能想要进行测试、调试或重用的某些事情。 但是,由于您没有提及这些影响,我将假设它们在此处不存在。
因此,在考虑第一段的前提下,只要您不需要在本模块的其他地方访问 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'));
需要考虑的一点是,express
模块提供了其他一些功能,您可能以后会想要使用它们(例如express.static
)。在您的情况下,您需要再次require
express才能访问它:
app.use(require('express').static());
var express = require('express');
var app = express();
简单地说,创建一个标识符以便重复利用并且更好地与读者沟通。
require()
的更多思考
由于require()
负责加载和缓存模块,有人认为它应该在应用程序初始化之前放置。我看到许多示例代码都遵循这种风格。但是我认为这确实取决于特定项目中包/代码质量如何得到保证。