为什么我们不直接做"app = require('express')"?

Why we don't directly do "app = require('express')"?

几乎在所有 NodeJS 应用程序代码中我都看到以下几行:

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

我想到了一个问题:为什么我们不直接做:

 app = require('express');

如果你的意思是

app = require('express')();

那么integrating/using express 就是不好的做法。 假设我们要使用 express 创建一个带有路由的简单 api 服务器。所以,基本上样板将是 -

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

app.use(express.json());

app.get('/', (req, res) => {
   res.json({
      type: 'success',
      message: 'We can send json response because we used json module from express :D'
   });
});

app.listen(8000)

所以,这里我们使用 json 模块将响应解析为 json 数据,我们使用 express 的内置模块来完成。

如果我们还没有全局声明 express 那么我们必须再次调用 express 函数才能使用 json 模块。

例如,如果我们不在全局范围内声明 express 并且想使用路由器和 urlencoded 解析器模块,那么代码将是这样的

const app = require('express')();
const json = require('express').json;
const urlencoded = require('express').urlencoded;

app.use(json());
app.use(urlencoded({extended: true}));

而且我认为编写正确的代码并不是一个好习惯。您必须为要从 express 使用的每个模块调用和创建新变量。

希望你能明白!我已经尽力用我的知识给你说清楚了。