Node.js要求不将其存储到variables中

我有下面的代码片段,它在其上下文中工作。

"use strict"; require('chromedriver'); var selenium = require('selenium-webdriver'); var driver = new selenium.Builder() .forBrowser('chrome') .build(); 

我不明白的是这一行:

require('chromedriver');

如果我删除它,我得到一个错误:

 Error: The ChromeDriver could not be found on the current PATH. Please download the latest version of the ChromeDriver from http://chromedriver.storage.googleapis.com/index.html and ensure it can be found on your PATH. 

所以它做了一些事情。

我明白什么var chromedriver = require('chromedriver'); 并且我只看到了迄今为​​止使用的require函数。

所以我的问题关于行: require('chromedriver');

为什么它工作?

所需的镀铬汽车在哪里结束?

如果require()函数不将其返回值保存到variables中,会发生什么情况?

调用模块上的需求实际上执行模块中的任何代码。 在大多数情况下,模块会导出一个或多个函数或一个对象,您想要将其存储在一个variables中。 但是,如果你要写这样的东西:

 for (var i = 0;i < 100; i++){ console.log("I've been called %d times", i); } 

在一个.js文件中,然后在一个节点程序中require这个文件,你会得到100行添加到你的控制台,没有其他事情发生。

基本的require是它执行在模块中写入的代码。 最后这个执行的代码可能会或可能不会返回一些东西。 在你的情况下,这个代码返回什么都没有关系,而重要的是这个代码至less执行一次。

需要注意的是, require的结果被caching也很重要。 这意味着即使您多次需要该模块,“代码”也只能执行一次。

这个模块的整个范例和要求来自CommonJS模式,我build议你阅读它。