Node

Node.js是一种用于构建可伸缩的网络应用程序的JavaScript运行时环境。它使用事件驱动、非阻塞I/O模型,使其非常适合编写数据密集型、实时应用程序。Node.js在服务器端编程方面非常流行,但也可以用于编写桌面应用程序和移动应用程序。

● 学习Node.js是为了解前后端交互流程

● 同时为后面学习前端框架做准备

● 前端有很多业务不能解决,需要使用Node.js处理

Node.js具有以下特点:

  1. 采用事件驱动、非阻塞I/O模型,使其具有高效、轻量和可扩展的特点;
  2. 基于JavaScript语言,使得开发人员可以使用同样的语言在前后端进行开发;
  3. 内置了大量的模块,如HTTP、FS、Crypto等,方便开发人员进行编程;
  4. 社区非常活跃,有大量的第三方模块和工具可供使用,提高了开发效率。

Node.js是一个非常流行和有用的技术,特别适合开发高性能、实时应用程序和网络应用程序。Node.js主要应用于Web应用程序、后端服务、实时通信应用程序等领域。

一,Node中的cmd操作


1.任意文件资源管理器中,地址栏输入:cmd

cmd的指令有很多,最常见的例如;

mkdir 或则   md 添加文件
 rmdir  或则  rd 删除文件

C:\Users\Teng\Desktop\day> rd ”文件名“

cd .. 上一级 

C:\Users\Teng\Desktop\day> cd

 cls 清空运行框

C:\Users\Teng\Desktop\day> cls

exit    退出运行框

C:\Users\Teng\Desktop\day> exit

dir 查看文件目录 

C:\Users\Teng\Desktop\day> dir

等等。。。。。。。

 二,Node中的顶层对象

在浏览器 JavaScript 中,通常 window是顶层对象

而 Node.js 中的顶层对象是 global

// console.log(this);//浏览器中js 为window  而Node.js中却是=> { }
// console.log(global);//顶级对象

为了解决这种问题出现了globalthis :

// console.log(globalthis );//在浏览器中js 为window  而Node.js中是 global

三,Node中的全局变量 

Node平台内置了例如:__filename__dirname等全局变量 setInterval() setTimeout()等方法

//绝对路径
console.log(__dirname);//E:\2020816\day07\code
console.log(__filename);//E:\2020816\day07\code\1.全局变量.js 

一个是局部变量一个是全局变量,简单来说就是一个只能到文件夹一个能到指定文件

 四,Node模块系统

对于Node的模块系统概念:

模块:在Node.js中,每个JavaScript文件都是一个模块,每个模块都会有自己的作用域。模块分为两类:一类是Node提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块( (ES6模块化,自定义)自定义模块、第三方模块)。

文件模块 [ES6模块化(ESM)/ CommonJS的模块化 (CJS)]

ES6模块化(ESM):

利用exportimpor   from:

 批量导入和导出:

  默认导入导出(export default):

CommonJS的模块化 (CJS):

导出:一个模块可以将一个或多个对象(函数、变量、类等)公开给其他模块使用。通过在模块中使用module.exports关键字将对象导出。 

导入:一个模块可以使用require函数来导入其他模块的对象。

输出结果:{ name: '张三', age: 18, sex: '男', run: '跑步' }

 依次导出多个数据:

上面的方法太过于繁琐于是就有了批量导入和导出: 

如果模块中出现两个,一个单项导出和一个批量导出同时出现则批量导出为主

//最好不能出现同时出现

内置模块/核心模块:Node.js自带了一些内置模块可以在应用程序中使用,如httpfspath等等。

//内置模块  NodeJS中自带的模块,可以直接使用


// require("模块名")
// fs/url/querystring/qs/path/http....


//url模块     处理url

let myUrl="http://192.168.1.1:3000/admin/login?username=jack&pwd=2342#main";
//协议
//主机名
//端口
//路径
//参数
// console.log(myUrl);//http://192.168.1.1:3000/admin/login?username=jack&pwd=2342#main

let url=require("url");//url网址方法
// console.log(url);

// let newurl=url.parse(myUrl);
// console.log(newurl); 内置模块的方法将url的协议等一系列拆分


// let {protocol,slashes,auth,host,port}=newurl;
// console.log(protocol);//利用解构的方式进行一一获取


let str=require("querystring");//转成对象模块 对象也能转成字符串
let string="username=jack&pwd=2342";//==>转成对象模块
let newstring=str.parse(string);
console.log(newstring);//[Object: null prototype] { username: 'jack', pwd: '2342' }

// let obj={
//         id:1,
//         username:"admin",
//         pwd:1123234
// }
// let newobj=str.stringify(obj);
// console.log(newobj);//id=1&username=admin&pwd=1123234

内核模块(内置模块/核心模块)新特性 :

在node的新版本中,支持使用[node:module API] 即可以使用node:前缀来标识核心模块。

这种方式导入包,它会绕过所需的缓存。

直接使用require('fs'),需要等node.js将所有核心模块加载完成后才可以使用,这个可以通过module.builtinModules去判断是否加载完成

使用require('node:fs'),则不需要等待,可以直接调用内置模块,但是却无法使用缓存

let node=require(“node:fs‘)/require(“node:ur”l)。。。。。。

第三方模块

开发者可以通过NPM(Node Package Manager)来安装第三方模块,以扩展Node.js的功能。简称(NPM)

第三方模块是指在开发过程中使用的非 Node.js 内置模块,这些模块通常是由其他开发者编写并共享的。使用 NPM 可以很容易地安装这些第三方模块,只需要在命令行中使用 npm install 模块名 命令就可以完成安装。

NPM 中的第三方模块非常丰富,包括各种 Web 框架、数据库驱动、工具库、CSS 框架等,可以帮助开发者更加快速、高效地完成开发任务。同时,NPM 也支持开发者将自己开发的模块共享到 NPM 上,供其他开发者使用。

首先创建一个文件,打开cmd命令框输入init指令生成 初始化代码工程(会在根目录下生成一个package.json的文件);

{
  "name": "node_demo2",        包名
  "version": "1.0.0",        版本号
  "description": "",        项目描述信息
  "main": "index.js",        入口文件
  "scripts": {                命令
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],            关键字
  "author": "",                作者    
  "license": "ISC",            许可协议
  "dependencies": {            生产依赖
    "cookie-parser": "^1.4.6",
    "jquery": "^3.7.0"
  },
  "devDependencies": {        开发依赖
    "express-session": "^1.17.3",
    "less": "^4.2.0"
  }
}

 

本地安装内有两个依赖

生产依赖:

npm install 包名    --save         /     简写:     npm   i    包名    -S

开发依赖:

npm  install  包名        新版写法

npm install  包名   --save-dev      /   简写:   npm  i   包名    -D

生产依赖:包不仅在开发阶段要使用,在生产阶段也要使用
开发依赖:只在开发阶段使用

注意:修饰符可以在前、在后
                        npm i 包名 -D
                        npm i -D 包名

全局安装:

将包安装到计算机上(默认C盘): 

npm  i  包名  -g  

  区别:
            本地安装和全局安装:
                本地安装:适用于绝大多数项目开发包
                全局安装:一般用于安装命令类型包

npm命令基本用法:

npm i                                            批量
npm view antd versions             查看所有版本信息
npm i 包名@版本号                      自定义版本
npm uninstall 包名                       卸载
npm rm 包名                                 删除

............................等等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值