node.js的基础操作
安装nodejs和npm的过程就不描述了
我推荐使用vscode,其中有插件库,可以直接搜索插件进行下载Terminal ,然后不用去打开电脑自带的cmd,而是直接在页面右击打开
这样下面就会出现终端cmd的运行环境
当然我们也可以通过寻找路径的方式来自己运行
在终端中直接输入 node 就可以运行
在node中,基本运算和和输出的方式与js一致
但node有个特点
_ 英文下划线代表着上一个数值的输出,也就是最后一个输出值
例如这样
我们还可以利用此特性进行简单运算
既然可以这样,我们也能其赋值
这些都是node的基础小知识,接下来谈谈node中模块的导出和引用
在将模块之前,我们得知道在node中运行js文件
例如
在终端中,我们运行其js的时候不仅需要找到正确的运行环境,还要在被运行的js文件之前加上 node 而文件可以只写文件名,也可以把后缀加上,都能运行
好,接下来我们了解一下模块
什么是模块?
在我们要举的例中,一个js文件就是一个模块,而每个模块都有自己的作用域一样
下面我们来看
当前名为 app 的js文件找中创建了一个num函数,num函数的左右就是将a和b相加,
接下来我们再创建另一个js文件,用来调用其模块
我们看到 app2 这个文件,
require的作用就是加载,也可称之为引入
require 可加载 .js、.json 和 .node 后缀的文件
在这里我们就是引入 app这个js文件了,所以路径一定要正确
引入成功的话会输出30这个值,接下来我们来看看运行效果
报错了,他说ret不是一个方法,为什么呢?
因为在app.js中我们并未导出num这个方法,所以我们必须要导出方法,app2.js才可以引用到
用exports进行导出后,我们才能在 app2.js中引用到
然后我们来看看用exports的导出的,是什么类型的数据
我们能看到输出为一个对象(object)类型,但是输出引用的类型的时候是对象的形式
然后我们看看另外一中导出的方式 module
这种导出方式,我们就需要改动一下app2.js中的调用方式
我们可以看到输出的为函数(Function)类型,输出引用的类型的时候是一个数组的样式,
这里我们可以了解这两中导出方式的作用都是导出模块的,但是区别是
exports 返回的是一个函数模块,一直都会是一个object,
我们可以做个验证,在app中只输出一个数字,然后在app2中调用
我们可以看到不管写入任何类型,输出类型都是object,
也可以知道exports的输出形式为:{ name : function}
而moudle.exports返回的则是模块对象本身,返回的是一个类
我们可以再看看同样导出的是一个数字,他会输出什么
返回为number类型,验证成功
其实这两中出方式在本质上是一样的,
但是还是建议使用exports进行导出