javascript - ExpressJS 需要

标签 javascript node.js express

我正在阅读 Express.JS 4.x API,并且很好奇他们是如何设置的。这是我对正在发生的事情的理解: 在 Express.JS 4.x API 的示例代码中,express 模块被导入并分配给变量express。然后该变量用于调用快速构造函数并分配给变量 app。

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

app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);

如果将express模块​​直接分配给app有区别还是上面的分配只是为了可读性?如下:

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

最佳答案

Node 模块可以返回一个构造函数,该构造函数既是构造函数又具有属性(因为函数是可以具有属性的对象)。

您的第一个方法允许您访问构造函数可能具有的任何其他属性或方法。第二种方法不允许这样做,因为它不保留对构造函数的引用。

在 ExpressJS 文档中,我确实看到了一些通过 Express 对象引用的项目,例如:

var express = require('express');
var app = express();
var router = express.Router();
router.get('/', function (req, res, next) {
    next();
});
app.use(router);

var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));

如果您不需要保留对构造函数的引用来访问构造函数上的其他方法,那么您的两个选项之间没有区别,因为它们执行相同的代码。您的第二个只是不保留对稍后可用于访问其他内容的中间步骤的引用。

关于javascript - ExpressJS 需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26834835/

相关文章:

javascript - 为什么 [] == [] 在 JavaScript 中为假?

javascript - TimePicker Razor ASP.NET-MVC

javascript - 使用自定义函数扩展 should.js

node.js - 在 Heroku 上使用集群和 socket.io-redis 扩展 node.js socket.io@1.*.*

node.js - Express + Passport.js : req. 用户未定义

javascript - 用于路由的 Node.js 外部文件

node.js - NodeJS 流出 AWS Lambda 函数

javascript - 如何在react.js中执行子组件验证而无需无限循环

javascript - React项目简单导入不起作用

json - 处理路由时出错 : index Assertion Failed: You must include an 'id'