node.js笔记(更新中)

177 阅读4分钟

一、简介

  • node.js是基于Chrome V8引擎的js运行环境。
  • node.js的API:浏览器是JavaScript的前端运行环境,node.js是javascript的后端运行环境,node.js包括fs\path\http等API,node.js不包括dom\bom等前端API。
  • node.js的作用: node.js作为JavaScript运行环境仅仅提供基础的功能和API。基于这些基础能力,我们可以利用很多强大的工具和框架,例如基于express框架可以快速构建web应用、基于electron框架可以构建跨平台的桌面应用,基于restify框架可以快速构建API接口项目等等。
  • node.js学习路径:js基础语法-node.js内置API-第三方API模块(express、sql等)
  • node安装:建议官网安装LTS稳定版,在终端(cmd\powershell)输入node -v检查node安装版本。

二、node.js内置API

1、fs文件系统模块

  • 引入:const fs=require('fs')
  • 读取指定文件中的内容:
  1. fs.readFile(path[,option],callback)path表示文件路径,字符串;option读取文件的编码格式,可选参数;callback文件读取完成后通过回调函数拿到读取的结果。
  2. 实例
const fs=require('fs')
fs.readFile('./files/11.txt','utf8',function(err,dataStr){
    console.log(err)//如果读取成功err值默认等于null,如果读取失败则err值为错误对象
    console.log('------')
    console.log(dataStr)//如果读取失败则dataStr值为undifined
})

3.判断文件是否读取成功

fs.readFile('./files/11.txt','utf8',function(err,dataStr){
    if(err){
        return console.log('读取文件失败'+err.message)
    }
    console.log('读取文件成功,内容是'+dataStr)
})
  • 向指定文件写入内容
  1. fs.writeFile(file,data[,option],callback)file表示文件存放路径,字符串;data表示要写入的内容;option读取文件的编码格式,可选参数;callback文件写入完成后的回调函数。
  2. 实例
const fs=require('fs')
fs.writeFile('./files/2.txt','abcd',function(err,dataStr){
    console.log(err)//如果读取成功err值默认等于null,如果读取失败则err值为错误对象
})

3.判断文件是否读取成功

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

4.注意点:fs.writeFile()方法只能创建文件,不能创建路径。重复写入时新写入的内容会覆盖旧内容。

  • 动态路径拼接容易产生错误的问题 路径以./或者../开头时容易出现路径错误的问题。
  1. 原因是:代码运行时,会以node命令所处的路径加上相对路径进行拼接出操作文件的路径,当node命令所处的路径改变则操作文件路径改变。
  2. 解决办法:用__dirname+绝对路径,__dirname表示当前文件所处的目录,是较为稳定的路径。

2、path路径模块

  • 引入:const path=require('path')
  • 路径拼接path.join():优点在于自动处理多的.少的/,注意点在于一个../抵消一层前面的路径。
const pathStr=path.join('/a','/b/c','../../','./d','e')
console.log(pathStr)//输出\a\d\e
  • 获取路径的文件名path.basename(path[,ext]):获取路径中的最后一个部分,path是读取的路径;ext是文件拓展名,可选值,使用后删除文件名中的拓展名。
  • 获取文件路径中的拓展名 path.extname(path)

3、http模块

  1. http模块的作用:
  • HTTP模块是官方提供用来创建web服务器的模块。通过http.createServer()方法创建服务器软件,从而对外提供web资源服务。其导入方式与fs和path相同。
  • 服务器与普通电脑的区别在于服务器上安装了web服务器软件,例如IIS(asp),apache(php)等,通过node.js提供的HTTP模块可以创建服务器软件。
  1. 服务器相关概念:
  • IP地址是每台计算机的唯一地址,通常是a.b.c.d的形式,其中abcd是0~255之间的十进制整数,可以通过ping域名的方式查看服务器的IP地址。
  • 域名是字符型的网址,IP地址和域名是一一对应的关系,这份对应关系存放在域名服务器DNS中。在开发测试期间,127.0.0.1对应的域名是localhost,代表本机。
  • 端口号类似现实生活中的门牌号,服务器可以有多个web服务,每个web服务都对应一个唯一的端口号,客户端的网络请求通过端口号可以准确的交给对应的web服务进行处理。在实际应用中,端口号80可以省略。
  1. 创建基本的web服务器

  2. 第四

  3. 第五