• Node.js笔记了解阶段


    目录

    什么是Node.js

    Node.js特性

    浏览器环境与node环境 

    CommonJS规范

    CommonJS的modules模块化规范写法

    暴露文件内容

    导入文件

    Node.js命令

    npm

    命令 

    注意:

    全局安装nrm

    中国NPM镜像

    yarn

    对比npm的优点

    ES模块化

    使用前

    导入与导出模块 

    导出模块

    导入模块

    导出多个模块

    导入多个模块

    什么是Node.js

    Node.js是一个javascript运行环境。他让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能。

    Node.js是基于V8引擎,V8是谷歌发布的开源javascript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl将这个V8搬到服务器上,用于做服务器的软件,因此Node.js可以解析js代码

    Node.js特性

    • Node.js语法完全是js语法,只要你懂js基础就可以学会Node.js后端开发
    • Node.js超强的高并发能力,实现高性能服务器
    • 开发周期短,开发成本低,学习成本低

    浏览器环境与node环境 

    注意:Blink内核能够对于HTML/CSS中的DOM进行排版解析,确定每一个元素的位置

    Node.js可以解析js代码(没有浏览器安全级别限制[中间层的加持能够实现比传统浏览器所不能实现的功能]),中间层提供很多系统级别API如:文件的读写(File System)、进程管理(Process)、网络通信(HTTP/HTTPS)

    注意:在node.js里面不支持HTML与CSS

    CommonJS规范

    CommonJS的modules模块化规范写法

    我们可以把公共的功能抽离成一个单独的js文件作为一个模块,默认情况下面这个模块里的方法或属性外面是没法访问的(针对require方法,不针对script标签)。如果要让外部可以访问模块里的方法或者属性,就必须在模块里通过exports或modlue.exports暴露属性或者方法

    暴露文件内容

    暴露:module.exports=test

    将test方法直接暴露出去

    注意:这种方式只能暴露a.js的一个方法,如果导入多个的话,后面方法的会将前面的方法覆盖

    暴露a.js文件的多个方法

    暴露:module.exports={test:test,run:run}或简写:module.exports={test,run}

    注意:后面是对象形式,暴露test,run方法

    暴露:(第二种写法)

    export.test=test

    expoet.run=run

    注意:这里的暴露第一个为导入的值可以随意写名称,第二个为导出的值不可以随意写名称

    1. //a.js内
    2. function test(){
    3. console.log("test-aa");
    4. }
    5. function run(){
    6. console.log("我要飞的更高");
    7. }
    8. module.exports={test,run}

    导入文件

    导入:var a=require("./a")

    导入a.js文件

    1. //导入a.js文件
    2. var a=require("./a")
    3. console.log(a);

    注意:

    • 导入文件的前提是暴露文件
    • 哪里需要用该文件在哪里导入该文件

    Node.js命令

    查看node.js版本:node -v

    执行js文件:node .\文件名

    npm

    含义:node.js的包管理器,用于node插件管理包括安装、下载、管理依赖(package.json)

    命令 

    注意:

    • node项目里面会用到的模块:node内置模块、第三方模块、自己写的模块
    • npm init可以生成一个package.json文件。这里面既帮助自己记录自己包的信息,还能记录你下载安装别人包的信息

    全局安装nrm

    NRM(npm registry manager)是npm的镜像源管理工具,有时候国外资源太慢,使用这个可以快速的在npm源之间切换

    手动切换方法:npm config set registry https://registry.npm.taobao.org

    查看镜像源:npm config get registry

    安装nrm:npm install -g nrm

    查看版本:nrm -V

    使用nrm:nrm ls查看可选源,其中带*的是当前使用的源

    切换nrm:若切换到淘宝——nrm use taobao(taobao为源)

    测试速度:nrm test

    中国NPM镜像

    这是个完整的npm.js,org镜像,你可以用此代替官方版本,同步频率为10分种一次以保证尽量与官方服务同步

    npm install -g cnpm --registry=https://registry.npmmirror.com

    yarn

    安装yarn:npm install -g yarn

    注意:先用npm来安装下来,然后再取代npm(npm泪奔)

    对比npm的优点

    1. 速度超快:yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度超快
    2. 超级安全:在执行代码之前,yarn会通过算法校检每个安装包的完整性

    ES模块化

    使用前

    项目内执行:npm init

    package.json内添加属性:"type": "module"

    导入与导出模块 

    导出模块

    1. //module.js文件内
    2. const moduleA={
    3. //空模块
    4. }
    5. export default moduleA//默认导出

    导入模块

    1. import moduleA from "./module/module.js";//导入modeleA
    2. console.log(moduleA)

    导出多个模块

    1. //module.js文件内
    2. const moduleA={
    3. //moduleA模块
    4. }
    5. const moduleB={
    6. //moduleB模块
    7. }
    8. export {moduleA,moduleB}//导出想要导出的模块

    导入多个模块

    1. import {moduleA,moduleB} from "./module/module.js";//导入modeleA
    2. console.log(moduleA)
    3. console.log(moduleB);

    注意:以{}形式导出,不管导入多少模块都需要用{}导入

  • 相关阅读:
    网线Cable
    《统计学习方法》第十九章 马尔可夫链蒙特卡罗法
    Cesium从已知的自定义材质扩展其他效果(二)
    mysql | 利用docker快速迁移mysql数据
    【WSL2教程】WSL迁移到非系统盘
    Debezium-增量迁移之 Oracle 迁移所需权限
    java基础10题
    毕业三年
    zeek学习(二)
    基于Simulink模拟具有两个目标的双基地雷达(附源码)
  • 原文地址:https://blog.csdn.net/m0_60027772/article/details/125525156