I have the following code snippet and it works in its context.
"use strict";
require('chromedriver');
var selenium = require('selenium-webdriver');
var driver = new selenium.Builder()
.forBrowser('chrome')
.build();
What I don't understand is the line:
require('chromedriver');
If i remove it I get an error:
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.
So it does something.
I understand what var chromedriver = require('chromedriver');
does and I have only seen the require function being used that way so far.
So my questions regarding the line: require('chromedriver');
Why does it work?
Where does the required chromedriver end up?
What happens in genereal if the require() function does not save its return into a variable?
Calling the require
on the module actually executes whatever code is in the module. In most cases, the module exports one or more functions or an object, which you want to store in a variable. But if you were to write something like:
for (var i = 0;i < 100; i++){
console.log("I've been called %d times", i);
}
in a .js file and then require
that file in a node program, you'd get 100 lines added to your console and nothing else happening.