我的问题是:为什么我们只使用变量名'app'来存储函数express的返回值,为什么不使用其他变量? 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')
}
答案 0 :(得分:1)
你可以做任何事情而不是应用程序,我们称这个应用程序,因为在node.js应用程序中,我们为不同的目的创建不同的应用程序。 有关详细信息,请参阅此页面,这非常有用:https://stackoverflow.com/a/27599657/9211830
另外,我建议你看一些Node.js和Express的教程。
答案 1 :(得分:1)
您选择的变量名称是任意的。按惯例选择app
。
在节点中,您可以从模块导出函数。例如:
test_mod.js :
function test() {
console.log("Testing")
}
module.exports = test
test.js :
var t = require('./test_mod')
t()
答案 2 :(得分:0)
App被定义为变量类型作为表达式的对象或实例,我们可以使用它的另一个变量名称,route = express()
答案 3 :(得分:0)
要使用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实例(app1,app2,app3等)。 )。如果它不需要你以某种方式创建一个实例并且只对所有状态使用模块级状态,那么每个node.js进程只能有一个服务器,这比需要的更有限。
在http和https上收听的人通常在同一个应用中拥有两台服务器。或者,您可以在一个端口上提供网页,并在另一个端口上提供API。所以Express库的设计者设计它,以便你可以在它上面调用.get()
之前需要一个快捷对象的实例(从而允许一个人拥有多个完全独立的实例)并且快递库提供了一个工厂您可以调用函数express()
来创建该实例。