Node.js-json-模块化-全局对象-fs-服务-Buffer

Node.js-json-模块化-全局对象-fs-服务-Buffer

1 node基础知识点

1.1介绍

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个应用程序。

官方网址 https://nodejs.org/en/,中文站 http://nodejs.cn/

node:是一个运行JS的环境。

1.2 作用

  • 解析运行 JS 代码
  • 操作系统资源,如内存、硬盘、网络

1.3 应用场景

  • APP 接口服务 一个接口就是一个地址
  • 网页聊天室。
  • 动态网站, 个人博客, 论坛, 商城等
  • 后端的Web服务,例如服务器端的请求(爬虫),代理请求(跨域)
  • 前端项目打包(webpack, gulp)

1.4 相关命令


1 打开 win+r cmd 或者地址输入 cmd回车
2 查看node版本:  node -v 
  进入node环境: node 回车
  退出环境:     ctr+c
  自动查找文件:  tab
3 运行JS文件     node 01-my.js:运行当前目录下的 01-my.js
4 清屏:cls
5 显示当前的文件列表 dir
6 切换盘符: c:
7 进入到上级目录:   cd..
  进入到one文件夹:  cd one
注意

在 nodejs 环境下,不能使用 BOM 和 DOM ,也没有全局对象 window,全局对象的名字叫 global

2 json

javascript object notation:对象表示方法,对象标记,数据交换格式

json:javascript object notation js对象的表达方式

json作用:实现前后端之间的通讯所传递的一种数据格式,类似于对象

与对象相同点:json与对象都是有键值对。{} 【】

与对象不同点:

① json属性必须加上双引号

② json最后一个属性结束时,不要加逗号

③ json的属性值不能是函数,NaN,undefined

④ json是前后端通讯时的数据之一,对象是通过类实例化出来的。

[
    {
   
        "useName":"xixi",
        "age":123
       
    }
]

对象与json是可以相互转换的,创建后缀为.js的文件

const obj = {
   
    a:1,
    b:2
}

stringifg:将对象转换为json字符串

const str = JSON.stringify(obj);
console.log(str); //{"a":1,"b":2}

parse:json字符串转换为json对象

const obj2 = JSON.parse(str);
console.log(obj2)  //{ a: 1, b: 2 }

3 模块化

3.1 模块化介绍

模块化指的就是将一个大的功能拆分为一个一个小的模块,通过不同的模块的组合来实现一个大功能。

  1. 在node中一个 js 文件就是一个模块
  2. 模块内部代码对于外部来说都是不可见的,可以通过两种方式向外部暴露

模块有:内置模块、自定义模块、第三方模块

3.2 引入与导出

模块内对外暴露数据注意以下几点:

1)模块内如果没有暴露数据,引人模块的时候会得到一个空对象。

2)module.exports 可以暴露任意数据。

创建并暴露模块,新建mo.js

const a = 12;
module.exports = a;

导出模块,新建index.js,并在

//mo1.js当中的 module.exports是什么那么mo1就是什么!!
const mo1 = require("./module/mo1.js")
console.log(mo1);//把a的值赋值给mo1   值为12

3.3 引入模块特点

① mo1.js当中的 module.exports是什么那么mo1就是什么

② 后缀.js是可以省略的

注意:node_modules一般存放的是第三方的模块,自定义的模块一般不会放置到该文件夹中,文件名必须叫node_modules。

③ 当js文件不在node_modules文件夹下,是不允许省略前缀的。若没有在当前文件夹找到,则会自动向上上级目录中的 node_modules 查找,一直到根目录。

const mo1 = require("module/mo1");// Cannot find module 'module/mo1'

创建node_modules文件夹,在此文件夹下创建文件mo1.js

const mo1 = require("mo1")
console.log(mo1)  //12

④ 当省略.js 会有两种含义:

i 会使用当前文件.js (第一种情况优先被选择)

ii 是一个json文件

iii 会使用当前文件下的index.js

index.js是可以省略不写的。当你只指定文件夹时,默认引入index.js

创建mo2文件夹,在mo2下创建index.js文件,暴露此文件

module.exports = "module->mo->index.js"

引入文件

const mo2 = require("./module/mo2/index")
console.log(mo2)  //module->mo->index.js

const mo2 = require("./module/mo2")
console.log(mo2)  //module->mo->index.js

⑤ 如果要更改默认值index,将默认值 index.js 指定为 home.js,在package.json中写入home.js

新建mo3文件夹,在文件夹中创建index.js ,home,js , package.json

暴露的文件分别为

module.exports = "module->mo3->index.js"
module.exports = "module->mo3->home.js";
{
   
  "main": "home.js"
}

则引入的文件则更改了默认值

const mo3 = require("./module/mo3")
console.log(mo3)  //module->mo3->home.js

⑤ 导入的是对象

const d = 4;
const e = 5;
const f = 6;
module.exports = {
   
    a:1,
    b:2,
    c:3,
    d,
    e,
    f,
    run(){
   
        console.log("run执行啦",this.a,this.b,this.c)
    }
}
const mo4 = require("./module/mo4");
console.log(mo4); //{ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, run: [Function: run] }
mo4.run();  //run执行啦 1 2 3

// 使用对象解构赋值
const {
   a,b,run} = require("./module/mo4");
console.log(a,b);//1 2
run(); //run执行啦 undefined

⑥ 如果直接给module.exports增加属性

module.exports.a = 1;
module.exports.b = 2;
module.exports.c = 3;
module.exports.d = 4;
module.exports.e = 5;
module.exports.run = function () {
   
    console.log(this);
}
const mo5 = require("./module/mo5");
console.log(mo5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值