node.js 入门学习

开始先说一下为什么学习node,是因为在工作项目中以及学习过程中发现node其实已经占据了非常重要的作用,前端工程化的基础基本上就是通过node.js实现的,我们常用的webpack和vue-cli都有node的身影,所以学习node就成了我们前端工程师的必修课,如果掌握node,我们也可以干一些自己喜欢的事情,所以感觉非常的有意义。因为之前学习过一些node的基础,所以这篇文章先做一些简单的回顾。首先我们需要知道node是什么,能干什么样的事。

node.js是一个javaScript运行环境(runtime)

node.js是一个快速构建网络服务及应用的平台,运行在服务器端,主要用于操作服务器文件,数据库,http协议等系统底层的东西。是一个让javascript运行在服务端的开发平台。(实际上是对V8引擎进行了封装)为了更好的让javaScript运行在浏览器之外的平台,
其实现了很多模块:文件系统,包,操作系统api,网络通信等,javaScript中没有或者不完善的功能。
它和javaScript有是什么关系? 它们都是采用ECMAscript语法,js主要运用在前端开发,node主要运用在后端开发。
关于它的下载和安装我们就不说了,因为在配置工作环境的时候已经都安装过了。
多余的不说,我们直接进入正题

node 模块系统

又要说这个老生常谈的话题了,我们简单提一下,因为大家都知道我们为什么要模块化,因为随着程序和业务的复杂度越来越高,一个文件里面的代码也来越多,越来越不容易维护。所以我们在编写代码的时候,把很多函数分组,放到不同的文件中,每个文件包含的代码就
相对较少,现在很多语言都这样搞,在开发中能很大程度的解决问题。有什么优点呢,简单的列一下
1.减少文件体积
2.命名冲突问题
3.文件依赖问题
4.提高代码可复用性

模块的分类

主要分为两大类
1.原生模块

//因为是内置模块所以不需要路径
var fs = require('fs')

2.文件模块

//调用文件模块必须指定路径,否则会报错
var fs = require('../test.js')

文件模块又分为三种类型,以后缀进行区分,node.js会根据后缀名来决定加载方式,MMP,论坛太low,写不了表格,我给大家列一下。
类型 描述
.js 通过fs模块编译并执行
.node 通过C/C++进行编写的addon。通过dlopen方法进行加载。(C/C++对于我来说太。。。,咱也不知道,知道它是这样执行的就可以了)。
.json 读取文件,条用json.parse解析加载

exports 创建模块

exports是当前模块的导出对象,用于导出模块公有方法和属性
我们先创建一个test.js文件
在里面写一个函数

// test.js
exports.sum = function (a,b) {
   reutrn  a+b
}

然后在创建一个main.js文件
在里面引入test.js

// main.js
var m = require(./test.js)
var a = m.sum(10,20)
console.log(a)  //  30
module 对象

通过module对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块导出对象。例如模块默认导出对象默认是一个普通对象,如果想改为一个函数可以通过如下方式:
导出一个构造函数

//hello.js
function hello(){
    this.name ="你的名字";
    this.setName = function(name){
        this.name = name;
    }
    this.sayName = function(){
        alert(this.name);
    }
}
module.exports= hello;

//main.js
var hello = require('./hello.js');
var o = new hello();
o.setName('张三');
o.sayName(); // 张三

还有就是模块初始化以及加载的优先级,这块我还没深入了解,就先不说了,我学习研究后在总结一下吧。npm 换源
这是飞哥最近给我们分享过的一个知识点,通过它将我们项目用到的东西放在了私有库里面,在一定程度上保证了安全性。
首先我们了解一下nrm,它是一个管理npm的工具,我们用npm的时候通常会把源切到国内的镜像,这样安装或者更新包的时候会快一点。nrm就是用来切换官方的npm源和国内的npm源,当然也可以切换公司的私有源(也就是我们说的私有库),
例如我们的前端私有库(https://192.168.211.**)。
如何使用呢?
第一步先全局安装nrm

npm i nrm -g

可以通过nrm ls 查看有多少源

  npm -------- https://registry.npmjs.org/
  yarn ------- https://registry.yarnpkg.com/
  cnpm ------- http://r.cnpmjs.org/
  taobao ----- https://registry.npm.taobao.org/
  nj --------- https://registry.nodejitsu.com/
  npmMirror -- https://skimdb.npmjs.com/registry/
  edunpm ----- http://registry.enpmjs.org/
* verdaccio -- http://192.168.211.68:4873/

*号代表的是目前我们所在的源

nrm use 是切换到那个源上
nrm use npm

nrm add 添加源

nrm add verdaccio http://192.168.211.68:4873/

nrm del 删除源

nrm del http://192.168.211.68:4873/

今天就先写到这,因为敲得我手疼(哈哈哈),关于node的学习还得继续进行,等我再研究一段时间再来更新,下篇估计主要介绍一下node.js的核心模块以及用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值