我在nodeJS上使用请求模块时非常困惑。我不能理解以下关于需要这个模块的许多方式的基础。
这个snipet是正确的但是,为什么要以这种方式?
var express = require('express'),
app = express(),
router = express.Router(),
assert = require('assert'),
MongoClient = require('mongodb').MongoClient;
例如,assert
也有方法和express
,那么,为什么它不能直接在app
变量中声明?
var app = require('express'); // like assert = require('assert')
...关于MongoClient,我不能以router
声明的方式做同样的事情吗?
var mongo = require('mongodb'),
MongoClient = mongo.MongoClient();
答案 0 :(得分:2)
对于您的第一个示例,请注意 Monitor monitor= PowerMock.createMock(Monitor.class);
PowerMock.expectNew(Monitor.class, <hostcode parameter>).andReturn(monitor).once();
PowerMock.replayAll(monitor);
PowerMock.verify(monitor);
与app = express()
完全不同。前者分配调用函数的结果,而后者相当于你的建议不会起作用。如果你真的喜欢重复,你可以做以下事情,但是你没有引用app = express
模块:
express
对于你的第二个例子,你再次混淆了一个函数的赋值与函数调用结果的赋值。一个正确的(但有一个不必要的额外线)替代方案是:
var app = require('express')(),
router = require('express').Router()
简而言之,只有一种方法需要一个模块 - var mongo = require('mongodb'),
MongoClient = mongo.MongoClient
- 其他一切都与模块系统无关。