Skip to content

Latest commit

 

History

History
54 lines (35 loc) · 2.02 KB

Module.md

File metadata and controls

54 lines (35 loc) · 2.02 KB

Platform Support

The following shows module APIs available for each platform.

Linux
(Ubuntu)
Raspbian
(Raspberry Pi)
NuttX
(STM32F4-Discovery)
TizenRT
(Artik053)
require O O O O

Module

The require function is always available there is no need to import module explicitly.

require(id)

  • id {string} Module name to be loaded.

Loads the module named id.

Example

var assert = require('assert');

assert.equal(2, 2);

require.cache

  • {object} Module map to be loaded.

Modules are cached in this object when they are required. By deleting a key value from this object, the next require will reload the module.

Loading a module

If a native module named id exists, load it and return. (Native module: which module came from the IoT.js itself)

require function searches for modules in the following order:

  1. $NODE_PRIORITIZED_PATH if present.
  2. node_modules folder under current working directory.
  3. $NODE_PATH if present.
  4. $HOME/node_modules.

For each directory in search paths above:

  • If a file id exists, load it and return.
  • If a file id.js exists, load it and retun.
  • If a directory id exists, module system consider the directory as a package:
    • If id/package.json contains main property, load the file named main property.
    • If id/package.json exists, but neither the main property nor the file named main property exist, load index.js.

require.main

  • accessing the main module

When a file is run directly, require.main is set to its module. That means that it is possible to determine whether a file has been run directly by testing require.main === module. For a file foo.js, this will be true if run via cmd directly, but false if run by require('./foo'), because module object is set to the foo module but require.main is still your entry file module. So you can get the entry point of the current application from checking require.main.filename anywhere.