为什么express要app=express(),而有些模块直接require就能使用?
发布于 9 年前 作者 lqclester 6154 次浏览 最后一次编辑是 8 年前 来自 问答

var express = require(‘express’); var app = express(); var superagent = require(‘superagent’);

6 回复

export的时候做手脚,比如new了,就可以没有这步骤了

所以 require(‘express’); 返回的是一个工厂方法咯

意思就是 具体怎么调用就要看api,而不是统一的调用~

返回的模块(module)的exports类型不同,有些是返回构造函数(constructor ),有些不是。如果是返回构造函数当然需要new运算符实例化下。

一般有两种情况不好直接require进来就默认实例化:一种是构造时带可选参数的,还有就是允许多个实例的(express是这种情况)。

不知道Nodejs里是不是跟高级编程语言一样 在类似c#的项目中创建类分为静态类和动态类,静态类是在编译运行之后就存在内存中,动态类只有在new的时候才分配内存 会不会express在require(‘express’)的时候并没有分配内存,当你new的时候才分配呢?只是我经验上的猜测,还需要高手给出正确答案呵呵

回到顶部