为什么我们使用'app'变量来调用 express 函数



我的问题是:为什么我们只使用变量名'app'来存储函数express的返回,为什么不使用其他变量?快递是节点中的一个模块,它怎么可能是一个函数?请帮助我,因为我是 node.js 的新手!以下代码是一个非常基本的路由的示例。

var express = require('express')
var app = express()
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function (req, res) {
res.send('hello world')
}

若要使用express库,请创建快速库的实例。 您可以通过调用express()来执行此操作,它返回一个常用约定命名app的对象,但您可以将其命名为任何您想要的名称。

const express = require('express');     // load express library
const app = express();                  // call express factory to create
// an instance of the express library

您可以根据需要app任何名称命名变量。app这个名字被流行的惯例使用,但你也可以很容易做到:

const express = require('express');
const myApp = express();
myApp.get('/', ...);

请注意,Express 要求您创建实例的原因之一是,在同一段代码中可以有多个服务器,每个服务器都是它们自己的 express 实例(app1、app2、app3 等)。 如果它不需要您以某种方式创建实例并且仅对所有状态使用模块级状态,那么每个节点只能有一个服务器.js该过程比需要的限制更大。

同时收听http和https的人通常在同一应用程序中有两个服务器。 或者,您可以在一个端口上提供网页,在另一个端口上提供API。 因此,Express 库的设计者设计了它,以便您需要一个 INSTANCE 的 INSTANCE 才能调用.get()对象(从而允许一个人拥有多个完全独立的实例),并且 Express 库提供了一个工厂函数express()您可以调用该实例来创建该实例。

您选择的变量名称是任意的。app是按照惯例选择的。

在节点中,您可以从模块导出函数。例如:

test_mod.js

function test() {
console.log("Testing")
}
module.exports = test

测试.js

var t = require('./test_mod')
t()

你可以用任何东西代替应用程序,我们称之为这个应用程序,因为在node.js应用程序中,我们为不同的目的创建不同的应用程序。 有关更多详细信息,请参阅此内容,这非常有用:https://stackoverflow.com/a/27599657/9211830

另外,我建议您观看Node.js和Express的一些教程。

App 被定义为变量类型作为对象或表达式类的实例,我们可以使用它的另一个变量名作为,route = express()

最新更新