首页 > 编程语言 >初识Node和内置模块

初识Node和内置模块

时间:2023-03-15 13:58:22浏览次数:57  
标签:Node 内置 http fs js 初识 path const

初识Node与内置模块

概述:了解Node.js,熟悉内置模块:fs模块、path模块、http模块

初识Node.js

浏览器中的JavaScript运行环境

运行环境是指代码正常运行所需的必要环境

  • 对于Chrome浏览器运行环境=V8引擎+内置API(DOM、BOM等)
  • V8引擎负责解析和执行Js代码
  • 内置API是由运行环境提供的特殊接口,只能运行在所属的运行环境中

JavaScript能否做后端开发?

也许你听到的后端开发语言大多是:Java、Python、PHP等,但其实Js也能做后端开发,虽然性能不如他们,但对于前端开发人员十分友好。

如果我们把Js代码运行浏览器中,就可以进行前端开发;如果运行到Node.js中,就可以实现后端开发

什么是Node.js?

Node.js是一个基于Chrome V8引擎的JavaScript运行环境

Node.js官网:http://nodejs.org/zh-cn/

Node.js中的JavaScript运行环境

对于Node.js运行环境=V8引擎+内置API

  • 浏览器是Js的前端运行环境
  • Node.js是Js的后端运行环境
  • Node.js中无法调用DOM和BOM等浏览器内置API

Node.js可以做什么?

很多框架和工具,都基于Node的基础功能,学会Node.js,可以“帮助前端程序员胜任更多工作”:

  • 基于Express框架,快速构建Web应用
  • 基于Electron框架,构建跨平台桌面应用
  • 基于restify框架,构建API接口项目
  • 读写和操作数据库、创建使用的命令行工具辅助开发等

如何走Node.js这条路?

JavaScript基础语法——Node.js内置API模块(fs、path、http等)——第三方API模块(express、koa、egg、mysql等)

Node.js环境安装

官网下载安装

区分LST版本和Current版本:

  • LST:长期稳定版,适于追求稳定性的企业级项目
  • Current:新特性尝鲜版,适于热衷于尝试新特性的用户

查看已安装的版本号

//打开终端(Terminal)
ndoe -v

在Node.js中执行JavaScript代码

打开终端

输入node要执行的Js文件路径

F:\xxx\xxx\Node.js>node index.js

终端中的快捷键:

  • 方向键↑:快速定位上一次命令
  • Tab:自动补全文件名
  • esc:快速清空已输入的命令
  • cls:清空终端内容

fs文件系统模块

什么是fs模块?

fs模块是Node.js官方提供的用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

fs.readFile()方法,读取文件内容

fs.writeFile()方法,写入内容

const fs=require('fs')

读取指定文件中的内容

  • 参数1:文件的存放路径
  • 参数2:读取时采用的编码格式(可选)
  • 参数3:回调函数,得到失败和成功的结果
fs.readFile(path[,options],callback)
const fs = require('fs');

fs.readFile('./files/1.txt', 'utf8', function (err, dataStr) {
    console.log(err)
    console.log("------------------")
    console.log(dataStr)
})

向指定的文件中写入内容

  • 参数1:文件的存放路径
  • 参数2:写入的内容
  • 参数3:读取时采用的编码格式(可选)
  • 参数4:回调函数,得到失败和成功的结果
fs.writeFile(file,data[,options],callback)
const fs = require('fs');

fs.writeFile('./files/1.txt', 'Hello World!', function (err) {
    console.log(err)
})

路径动态拼接错误问题

在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径,很容易出现路径动态拼接错误问题。

原因:代码运行时,会以node命令时所处的目录,动态拼接被操作文件的完整路径。

解决:直接提供完整的绝对路径(移植性差,不利于维护)。

fs.writeFile(__dirname+'/files/2.txt', newStr, function (err) {
    if (err) {
        return console.log("文件写入失败!+", err.message)
    }
    console.log("文件写入成功!")
})

path路径模块

什么是path模块?

path模块是Node.js官方提供的用来处理路径的模块,它提供了一系列的方法和属性,用来满足用户对路径的处理需求。

path.join()方法,将多个路径片段拼接成一个完整的路径字符串

path.basename()方法,将路径中的文件名解析出来

const path=require('path')

路径拼接

path.join([...paths])
const path = require('path')

const pathStr = path.join('/a', '/b/c', '../', '/d', 'e') //../抵消一层
console.log(pathStr)//\a\b\d\e

获取路径中的文件名

  • 参数1:文件的存放路径
  • 参数2:文件扩展名
path.basename(path[,ext])
const path = require('path')

const fpath = './files/1.txt'
const fullname = path.basename(fpath)
console.log(fullname)//1.txt

const nameWithoutExt = path.basename(fpath, '.txt')
console.log(nameWithoutExt)//1

获取路径中的文件扩展名

path.extname(path)

http模块

什么是http模块?

在网络节点中,负责消费资源的电脑,叫做客户端;负责对外提供网络资源的电脑,叫做服务器。

http模块是Node.js官方提供的用来创建Web服务器的模块的模块,通过提供的http.createServer()方法,就能把一台普通的电脑,变成一台Web服务器,从而对外提供Wbe资源。

const http=require('http')

服务器和普通电脑的区别在于:服务器上安装了Web服务器软件,例如IIS、Apache等

再Node.js中,我们不需要使用IIS、Apache等第三方web服务器软件。因为我们可以基于Node.js的http模块,通过几行代码,手写一个服务器软件,从而对外提供web服务。

创建最基本的web服务器

  1. 导入http模块
  2. 创建web服务器实例
  3. 为服务器实例绑定reques时间,监听客户端请求
  4. 启动服务器
const http = require('http')
const server = http.createServer()

server.on('request', function (req, res) {
    console.log("Someone visit our web server")
})

server.listen(8082, function () {
    console.log("Server running at http://127.0.0.1:8082")
})

req请求对象

访问与客户端相关的数据或属性

const http = require('http')
const server = http.createServer()

server.on('request', req=>{
    const url=req.url//客户端请求的url地址
    const method=req.method//客户端请求的method类型
})

server.listen(8082, function () {
    console.log("Server running at http://127.0.0.1:8082")
})

res响应对象

访问与服务器相关的数据或属性

const http = require('http')
const server = http.createServer()

server.on('request', (req, res) => {
    const url = req.url//客户端请求的url地址
    const method = req.method//客户端请求的method类型
    //调用res.end向客户端响应内容
    res.end("Hello World!")
})

server.listen(8082, function () {
    console.log("Server running at http://127.0.0.1:8082")
})

解决中文乱码问题

res.setHeader('Content-Type','text/html; charset=utf-8')

标签:Node,内置,http,fs,js,初识,path,const
From: https://www.cnblogs.com/gfhcg/p/17218217.html

相关文章

  • 深入nodejs的event-loop
    此处如无特殊指出的话,eventloop的语境都是指nodejs本文研究所用的nodejs环境是:操作系统window10+nodejs版本号为v12.16.2什么是eventloop?eventloop是指由libuv......
  • 彻底搞懂nodejs事件循环
    nodejs是单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线......
  • mDNS协议初识
    mDNS协议初识TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarian......
  • Node.js版的Playwright等待所有请求完成
    以下是一个Node.js版的Playwright等待所有请求完成的Demo喵~:```javascriptconst{chromium}=require('playwright');(async()=>{constbrowser=awaitchr......
  • 初识HTTP、HTTP报文
    初识HTTP1、HTTP是什么HyperTextTransferProtocol超文本传输协议HTML:超文本标记语言超文本:原先一个个单一的文本,通过超链接将其联系起来,由原先的单一的文本变成了......
  • 项目构建node-sass源码报错 SyntaxError:Unexpectedtoken"?"
    背景vue2项目,之前一直构建正常。今天改了代码,构建时报错,报错原因显示编译node-sass源码时出错。报错信息:Modulebuildfailed:/node_modules/node-sass/sass.dart.js:19......
  • 使用nodeJs框架koa2搭建项目后端
    使用koa2搭建项目后端 github源码地址:https://github.com/liuerhost/koa2-demo.git1.安装koa脚手架—koa-generatornpminstall-gkoa-generator2.创建koa2项目......
  • 宝塔面板pm2管理器部署node.js
    前言需要你有一个轻量级服务器,服务器里面有宝塔面板,然后有一个写好的node.js后端文件,需要把你sever文件夹上传到你的服务器中,需要你有一个解析好的二级域名以及ssl证书,放行......
  • nodejs安装使用express
    NodeJs快速搭建Express框架1.用Express应用程序生成器express-generator进行快速搭建。1.1安装express-generator命令npminstallexpress-generator-g1.2生成......
  • 1. 初识Kubernetes
    WhatIsK8S狭义上讲,K8S是一个应用编排器。绝大部分情况下,它被用于 编排 容器化 的云原生微服务应用。具体的,它可以实现:自动化部署应用按需对应用进行扩容或缩容应......