为什么我们不直接做"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 使用的每个模块调用和创建新变量。
希望你能明白!我已经尽力用我的知识给你说清楚了。
几乎在所有 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 使用的每个模块调用和创建新变量。
希望你能明白!我已经尽力用我的知识给你说清楚了。