Node中的JavaScript

Node 中的 JavaScript

核心模块

node提供了一些服务器级别的API可供使用。具体查看核心模块文档如下:

访问https://nodejs.org,然后按照下面这个路径点击,就可以看到模块的文档。

img

img

关键字require

使用关键字require方法来加载相关的模块,类似于java中的import,但是import可以加载一个类,而require是加载一个模块。

加载node内置的核心模块:
1
2
3
4
5
const http = require('http');
const os = require('os');
const fs = require('fs');
const path = require('path');
const stream = require('stream');
加载自定义模块

使用require可以加载自定义模块,方法中写相对路径,其路径规则如下:

  • 相对路径必须加 ./,否则报错
  • 可以省略后缀名js
  • 例子如下,在a.js中引入b.js

a.js

1
2
3
4
5
6
7
var a = 'hi, this is a!'

console.log(a)

// 可以省略后缀名js
require('./b');
//require('./b.js');

b.js

1
2
var b = 'hi, this is b!'
console.log(b)

模块通信

在 Node 中,模块完全是封闭的,模块中的变量和方法只能供模块自己使用,外部不能访问模块中的变量和方法,模块内也不能访问模块外的变量和方法。所以是模块作用域,没有全局作用域。

关键字exports

为了能让外部访问模块内的方法和变量,需要使用exports手动导出。在每个模块中,都提供了一个对象:exports,exports导出的对象默认是个空对象,将需要暴露出来的成员手动的挂载到 exports 接口对象中。然后使用require 来引入导出模块,再提供“.”的方式导出 exports 接口中的对象。

a.js

1
2
3
var b = require('./b.js');
console.log(b)
b.print('b.print')

b.js

1
2
3
4
5
6
7
8
9
var b = 'hi, this is b!'
console.log(b)

// 暴露变量
exports.b = b
// 暴露方法
exports.print = function(str) {
trueconsole.log("print:",str)
}

导出的b,是一个键值对,里面包含变量b及其值、方法print()。

img

-------------本文结束 -------------

版权声明

Raccoon by Raccoon is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Raccoon创作并维护的Raccoon博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Raccoon 博客( https://lilysnian.github.io/ ),版权所有,侵权必究。