为什么express要app=express(),而有些模块直接require就能使用?
 发布于 10 年前  作者 lqclester  7184 次预览  最后一次回复是 10 年前  来自 问答 

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

6 回复
i5ting

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

wyvernnot

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

lqclester

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

binking338

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

tangxinfa

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

bendise

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