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议你阅读它。