nodejs(框架前置基本介绍)

一、_nodejs基本介绍

官方概念:Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

(Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.)

上面的概念中有两个特殊的名词,解释如下:

1.chrome V8引擎: chrome浏览器用来解析和执行js代码的工具;

2.运行时:理解为一个容器,用来运行代码的环境;

所以,对Node.js更通俗的解释是:一个用chrome浏览器V8引擎来跑JS代码的环境。

 二、在Node环境下运行js代码

在小黑窗中直接跑代码运行这个文件

      1.打开命令行工具(请注意当前所处的位置),输入命令

       2.格式: node 要执行的文件的路径

注意:node 的后面有一个空格   nodejs就是一个环境。可以跑代码的环境

三、Node.js和浏览器端的区别

 

1.在浏览器端

js由三部分组成:ECMAScript + BOM + DOM

2.在nodejs端

ECMAScript + 内置模块(fs, http, path,.....)。在nodejs中是没有BOM、DOM、window,但使用ECMAScript是通用的

区别

相同点:

都是可以运行js代码的容器,更严格一点说:都可以运行ECMAScript

  1. 要下载安装才能使用

不同点:

各有不同的API:  nodejs运行js时,不能写DOM,BOM,也不能用window对象了

  1. Nodejs 环境可以去实现后端的功能
  2. 浏览器环境可以去实现前端的功能

四、nodejs中的模块分类

1.理解核心模块

核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。

  • 每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。
  • 一般在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
  • 例如:const fs = require('fs'), const path = require('path')

2.自定义模块

  • 程序员自己写的模块
  • 相当于我们在学习js时的自定义函数

3.第三方模块

    • 其他程序员写好的模块。nodejs生态提供了一个专门的工具npm来管理第三方模块,后面我们会专门讲到。
    • 相当于别人写好的函数或者库。例如我们前面学习的axios, JQuery库,artTemplate等。

五、文件写入(fs-writeFileSync)再读取(writeFileSync)

1.fs-readFileSync-文件读取

 注意:api的名字结尾有Sync(async是异步的,sync表示同步的)

2.fs-writeFileSync-文件写入

功能:向指定文件中写入字符串, 如果没有该文件则尝试创建该文件。

 注意:它是覆盖写入,会把文件中的内容全部删除,再填入新的内容

六、路径问题-使用绝对路径

 1.__dirname __filename 获取绝对路径

   nodejs中提供了两个全局变量来获取获取绝对路径:

  • __filename:获取当前被执行的文件的绝对路径
  • __dirname:获取当前被执行的文件的文件夹所处的绝对路径

 2.全局变量的含义是:

  • 变量:它们的值是变化的。在不同的文件中值就不同,因为文件的路径也不同嘛。
  • 全局:在任意地方都可以直接使用。

 

七、path模块

引入模块步骤:const   path  =require('path')

常用的api

  • path.basename() :此方法返回 path 的最后一部分。一般可用来获取路径中的文件名。
  • path.join() :路径拼接。
  • path.parse(pathurl) :把一个路径转成一个对象

 八、啥是模块化?

     一个js文件可以引入其他的js文件,能使用引入的js文件的中的变量、数据,这种特性就称为模块化。使用模块化开发可以很好的解决变量、函数名冲突问题,也能灵活的解决文件依赖问题。

 

 

Node.js 中的 CommonJS 的模块化规范

CommonJS 规范CommonJS 规范中主要规定了以下 3 项内容:

  • 导入其它模块时,统一使用 require() 函数。
  • 每个 .js 文件,都是一个独立的模块,模块内的成员都是私有的。
  • 在每个 JS 模块中,使用 module.exports 向外共享成员。

注意

  • module.exports 是固定写法,一般放在文件的最末尾,也只用一次。
  • module.exports表示当前模块要暴露给其它模块的功能。(可以导出对象,数组,函数等等类型)

两个对象的关系

初始exports和module.exports是指向同一块内存区域,其内容都是一个空对象。(exports是module.exports的别名)即:exports === module.exports // 输出是 true

  • 在定义模块时:
    如果直接给exports对象赋值(例如:exports={a:1,b:2}),此时,exports就不会再指向module.exports,而转而指向这个新对象,此时,exports与module.exports不是同一个对象。在引入某模块时:以该模块代码中module.exports指向的内容为准。

八、了解npm和包

1.npm

  • npm 全称 Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。
  • npm 不需要单独安装。在安装Node的时候,会连带自动安装npm
  • npm -v检查安装的情况。
  • 官网

2.安装包分成三步:(注意不可起中文名字)

   1)初始化项目。npm init 如果之前已经初始化,则可以省略。

   2)安装包。 npm install 包名。[注意:保持联网的状态哈]

   3)引入包,使用

1)下载包-修改镜像源 

 2)镜像源(下载包速度快)

检查当前的下包地址:

npm config get registry

 把下包的地址切换为国内的淘宝服务器

npm config set registry=https://registry.npm.taobao.org/

3.全局安装包和本地安装包 

一个经验法则:

  • 要用到该包的命令执行任务的就需要全局安装
  • 要通过require引入使用的就需要本地安装

 4.全局安装nodemon包

作用:能帮我们自动检测到我们的代码的修改,并自动重新运行我们的代码

好处:它的好处在于会自动监听server.js这个文件的变化,如果变化了,就会重新自动再去运行。相当于是如下伪代码:

步骤:

1.在任意位置 打开一个小黑窗,输入如下命令:

2.npm install -g nodemon 回车

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值