Node总结

**

Node.js

**是一个开源的、跨平台的、基于Chrome V8引擎的JavaScript运行环境。它可以让开发者使用JavaScript编写服务器端应用程序。Node.js的一些主要特点和优势如下:

  1. 非阻塞I/O和事件驱动:Node.js使用事件驱动和异步I/O模型来处理并发连接,从而提高了应用程序的性能和可扩展性。

  2. 单线程:Node.js使用单线程,但可以通过事件循环和多个工作线程(如child_process或worker_threads模块)来实现并发。

  3. 跨平台:Node.js可在各种操作系统(如Windows、macOS和Linux)上运行,使开发者能够轻松地将应用程序部署在不同的环境中。

  4. 丰富的模块生态系统:Node.js拥有一个庞大的开源社区,提供了大量的第三方模块,称为npm(Node Package Manager),使得开发者可以轻松重用和共享代码。

  5. RESTful API开发:Node.js非常适合开发RESTful API,因为它具有很高的性能和灵活性。

  6. 实时Web应用:Node.js可用于构建实时Web应用程序,如聊天应用、在线游戏和实时数据分析等。

  7. 快速开发:由于Node.js基于JavaScript,开发者可以使用相同的语言进行前端和后端开发,从而提高开发速度和效率。

  8. 高性能:由于Node.js采用了V8引擎,它可以提供高性能的运行环境。

**

1.CMD 常用命令总结

**
切换磁盘:d:(进入 d 盘)
切换磁盘和目录:cd /d d:/test(进入 d 盘 test 文件夹)
进入文件夹:cd \test1\test2(进入 test2 文件夹)
返回根目录:cd \
回到上级目录:cd ..
新建文件夹:md test
显示目录中文件列表:dir
显示目录结构:tree d:\test(d 盘 test 目录)
显示当前目录位置:cd
显示指定磁盘的当前目录位置:cd d:

2.顶层对象

在浏览器 JavaScript 中,通常 window是顶层对象,而 Node.js 中的顶层对象是 global

globalThis

代码示例:

// console.log(this);//{}
// console.log(global);

// console.log(globalThis);//顶级对象

3.全局变量

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

代码示例:

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

.4.模块的分类

在Node中,模块分为两类:一类是Node提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块(自定义模块、第三方模块)。

4.1 内置模块/核心模块

例如:url querystring fs …

代码示例:

//内置模块  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";
//协议
//主机名
//端口
//路径
//参数

// const url=require("url");

// // console.log(url);
// let newUrl=url.parse(myUrl)
// // console.log(newUrl);

// let {host,port,protocol,query,pathname} =newUrl;
// console.log(protocol);//协议
// console.log(pathname);
// console.log(port);
// console.log(host);
// console.log(query);

// let mmUrl=new URL(myUrl)
// console.log(mmUrl);


const qs=require('querystring');
// console.log(qs);

let str="username=jack&pwd=2342";// -->   对象格式
let rst=qs.parse(str)
// console.log(rst);

let queryObj={
    id:1,
    username:"admin",
    pwd:1123234
}

let ss=qs.stringify(queryObj)

console.log(ss);

4.2 文件模块

文件模块常见的有:自定义模块、第三方模块

自定义模块:

代码示例:

let fn = function () {
    console.log('hello world');
}


let fnx = function () {
    console.log('running........');
}


let arr = ['hello', 'yes', 'hi'];

let obj = {
    no: "1002",
    title: "鞋子",
    price: 119
}

//批量导出
module.exports = {
    fn: fn, fnx, arr, obj
}
ES6的模块化 (ESM)

使用export和import

  • 单个导出
    • export.名称=值
  • 批量导出
    • export { 值,…}
  • 默认导出
    • export default {}

示例:

import {age} from "./person.js"


export let fn=function(){
    console.log('hello world');
}


let fx=function(){
    console.log('this...');
}


let obj={
    id:111,
    msg:"ok"
}

export {
    fx,obj
}
let obj={
    id:111,
    name:"李强",
    age:18
}

//1.单个导出
export let age=20;
export let name="狗蛋"
export let addr="门口狗窝"
//默认导出
// export default {
//     id: 1,
//     msg: 'ok',
//     fn: function () {
//         console.log('哈哈哈');
//     },
//     fnx() {
//         console.log("hello world");
//     }
// }


let a = 10;
let b = 'hello world';

let fn = function () {
    console.log('run.........');
}

let arr = [10, 20, 304, 890]

export default {
    ax: a,
    b: b,
    fn: fn,
    arr: arr
}

// export default {
//     a,b,fn,arr
// }

//注意:一个模块只能有一个默认导出

// export default {
//     name:"李四"
// }

// console.log(obj);//不能直接访问其它模块的内容

//导入其它模块的内容

//1.导入单个导出
import { age } from "./person.js";
// import {age} from "./person";//error  需要完整的后缀

//2.导入批量导出的内容
import { m1 as mm, m2 } from "./strudent.js"

//3.
import {fn,fx,obj} from "./emplyee.js";

//4.导入默认导出的模块
import xx from "./man.js"

// console.log(age);
// console.log(obj);//error  person.js没有导出obj

// console.log(m1);
// console.log(m2);

// fn()
// fx();
// console.log(obj);


console.log(mm);
// console.log(m1);//已改名,不可以使用


// console.log(xx);

// console.log(xx.id);
// console.log(xx.msg);
// xx.fn()


//入口文件
CommonJS的模块化 (CJS)

使用exports、module.exports 和require

示例:

//  let name='张三';
// let age=20;
// let addr="中州大道";


//单个导出

exports.name = '张三';
exports.age = 20;
exports.addr = "中州大道";

let arr=[10,100,300];
let fn = function () {
    console.log('hello world');
}


let fnx = function () {
    console.log('running........');
}


let arr = ['hello', 'yes', 'hi'];

let obj = {
    no: "1002",
    title: "鞋子",
    price: 119
}

//批量导出
module.exports = {
    fn: fn, fnx, arr, obj
}
//入口文件

//导入
// const xx=require("./user.js");// { name: '张三', age: 20, addr: '中州大道' }


// console.log(xx);

// const { age, addr } = require("./user.js");
// const { age, addr ,arr} = require("./user");//可以省略后缀

// // console.log(age, addr);
// console.log(arr);//undefined


// const rst=require("./student");

// console.log(rst);
// console.log(rst.xx.arr);


// let rst=require("./room")
// console.log(rst);

// let {obj,arr} =require("./room");
// console.log(obj,arr);



const xx=require("./classroom");
console.log(xx);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值