CNode

为什么express要app=express(),而有些模块直接require就能使用?

问答
Llqclester发布于11 年前最后回复11 年前6 回复7402 浏览0 收藏

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

查看回复

回复 (6)

I
i5ting#1·11 年前

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

W
wyvernnot#2·11 年前

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

L
lqclester#3·11 年前

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

T
tangxinfa#4·11 年前

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

B
bendise#5·11 年前

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

B
binking338#6·11 年前

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

参与回复
登录后即可参与回复。登录