Node.js学习

文章目录

介绍:

  • 定义:是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序
  • 作用:使用Node.js编写服务器端程序

前端工程化

开发项目直到上线,过程中集成的所有工具和技术

Node.js是前端工程化的基础

工具:压缩工具、格式化工具、转换工具、打包工具、脚手架工具等

Node.js为何能执行js

  • 浏览器能执行JS代码,依靠的是内核中的V8引擎
  • Node.js是基于Chrome V8引擎进行封装
  • Node.js有独立的API
  • Node.js环境没有DOM和BOM等

Node.js安装

  • https://nodejs.org/en
  • 安装在非中文路径
  • 无需勾选自动安装其他配套软件
  • 安装成功验证:打开cmd终端,输入node - v

使用Node.js

  • 新建js文件,并编写代码后,在node环境下执行
  • 在VSCode终端中,输入node xxx.js 回车即可执行

fs模块-读写文件

  • 模块:类似插件,封装了方法、属性
  • fs模块:封装了与本机文件系统进行交互的方法属性
  • 语法:
    • 加载fs模块对象
    • 写入文件内容
    • 读取文件内容
javascript 复制代码
// 1.得到fs模块对象
const fs = require("fs");
// 2.写入文件内容
fs.writeFile("./text.txt","hello,world",(err)=>{
    if(err){
        console.lof(err);
    }
    else{
        console.log("写入成功")
    }
})


// 3.读取文件内容
fs.readFile("./text.txt",(err,data)=>{
    if(err){
        console.log('读取失败');
    }
    else{
      	console.log('读取成功')
        console.log(data.toString());
    }
})

path模块-路径处理

  • Node.js代码中,相对路径是根据终端所在路径来查找,可能无法找到想要的文件
  • 在Node.js代码中,使用绝对路径
  • __dirname内置变量(获取当前模块目录-绝对路径)
  • 语法:
    • 加载path模块
    • 使用path.join()方法,将当前Node.js文件路径所在路径与新建文件路径拼接,以达到精确查找文件的目的
javascript 复制代码
const fs = require("fs")
// 1.引入path模块
const path = require("path")
// 2.调用path.join()
console.log(__dirname)
fs.readFile(path.join(__dirname,'text.txt'),(err,data)=>{
    console.log(data.toString())
})

URL中的端口号

  • URL :统一资源定位符
  • 端口号:标记服务器里不同功能的服务程序
  • 端口号范围:0~65535之间的任意整数
  • http协议,默认访问80端口
  • 常见的服务程序
    • web服务程序:用于提供网上信息浏览功能
  • 0-1023和一些特定的端口号被重要程序占用,要避免使用这些端口号

http模块-创建Web服务

  • 步骤:
    • 加载http模块,创建Web服务对象
    • 监听request请求事件,设置响应头和响应体
    • 配置端口号并启动Web服务
    • 浏览器请求测试
javascript 复制代码
const http  =require("http");
const server = http.createServer();

server.on("request",(req,res)=>{
    //设置响应头:内容类型,普通文本;编码格式
    res.setHeader("Content-Type","text/plain;charset=utf-8")
    // 设置响应体内容,结束本次请求与响应
    res.end("欢迎使用web服务")
})
//配置端口号并启动web服务
server.listen(2999,()=>{
    console.log("web服务已经启动")
})

Node.js模块化

  • 定义:CommonJS模块是为Node.js打包JavaScript代码的原始方式,Node.js还支持浏览器和其他JavaScript运行时使用的ECMAScript模块标准。在Node.js中,每个文件都被视为一个单独的模块
  • 概念:项目是有很多个模块文件组成的
  • 好处:提高代码复用性,按需加载,独立作用域
  • 使用:需要标准语法导入导出
  • 使用方法:自定义一个模块,在另一个文件中使用这个模块。(类似于java中的类,在类中定义方法,在类外调用(个人理解))
javascript 复制代码
//定义一个求和模块
let sum_arr = arr=>{
    let sum_arr = 0;
    for(let i = 0;i < arr.length;i++){
        sum_arr += arr[i];
    }
    return sum_arr;
}
//导出模块
module.exports={
    arrSum:sum_arr
}
javascript 复制代码
//导入模块
let util=require("./util.js");

arr=[1,3,5,6,9,8];
//使用模块
console.log(util.arrSum(arr))

ECMAScript标准-默认导出导入

  • 使用:
    • 导出:export default{}
    • 导入:import 变量名 from '模块或者路径'
  • 注意:Node.js默认支持CommonJS语法,如需使用ECMAScript应该在所在文件夹新建package.json文件,并设置{"type":"module"}

ECMAScript标准-命名导出导入

  • 导出:export修饰定义语句
  • 导入:import{同名变量} from '模块名或路径'
相关推荐
知识分享小能手5 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao7 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾8 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT8 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa8 小时前
HTML和CSS学习
前端·css·学习·html
看海天一色听风起雨落9 小时前
Python学习之装饰器
开发语言·python·学习
speop10 小时前
llm的一点学习笔记
笔记·学习
非凡ghost11 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空11 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人11 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习