【Node.js】初始

知识了解

  • 不同的游览器使用不同的javaScript解析引擎
  • chrome游览器-v8
  • firefox游览器-OdinMonkey(奥丁猴)
  • safri游览器-JScode
  • IE游览器-Chakra(查克拉)

为什么javascript可以操作DOM和BOM

  • 游览器提供内置DOM APi和BOM ApI和AJaxAPI
  • 程序员根据这些API编写出待执行的js代码
  • 然后交给游览器的解析引擎

游览器中的javaScript运行环境

  • 运行环境指的是代码正常运行所需的环境
  • v8引擎负责解析和执行js接口
  • 内置API是由运行环境提供的特殊接口,只在所属的环境中被调用
Node.js

node.js是一个基于chromeV8引擎的javascript运行环境

  • 提供内置API供程序员编写待执行的js代码
  • 游览器是javascript的前端运行环境
  • Node.js是javascript的后端运行环境
  • Node.js无法调用DOM和BOM等游览器内置API

Node.js可以做什么

  • Node.js作为一个javaScript的运行环境,仅仅提供了基础的功能和APi。但是基于Node.js提供的这些基础,就可以使用更多的强大工具和框架
  • 例如:基于Express框架,可以快速构建Web应用
  • 基于ELEtron框架,可以构建跨平台的桌面应用
  • 基于restify框架,可以快速构建API接口项目
  • 简单说,node.js是大前端时代的,“大宝剑”,相当于前端buff

node.js的学习路径

  • js基础语法——node.js内置Api模块(fs,path.,http等)——第三方api模块(express,mysql等)
CommonJS规范,简称CJS
  • Node是CommonJS在服务器端一个具有代表性的实现
  • Browserify是CommonJS在游览器中的一个实现
  • webpack打包工具具备对CommonJS的支持和转换
  • 所以,Node中对CommonJS进行了支持和实现
  • 在Node中每一个js文件都是一个单独的模块
  • 这个模块中包括CommonJS规范的核心变量:exports,module.exports,require
  • 我们可以使用这些变量来方便的进行模块化开发
  • Node对其进行实现
  • exports和module.exports可以负责对模块中的内容进行导出
  • require函数可以帮助我们导入其他模块中的内容
exports和module.exports有什么区别呢
  • CommonJS中是没有module.exports的概念
  • 但是为了实现模块的导出,Node中使用的是Module的类
  • 所以在Node中真正用于导出的其实不是exports,而是module.exports
  • 因为module才是导出的真正实现者
但是为什么,exports也可以导出呢
  • 因为module对象的export属性是exports对象的一个引用
  • 也就是说,module.exports=exports
Node.js环境安装

https://nodejs.org/zh-cn/

终端的概念
  • 终端是专门为开发人员设计的,用于实现人机交互的一种方式
在Node.js环境下执行js代码
  • 打开cmd终端
  • 输入node要执行的js文件的存放路径
  • 我建立记事本1.js存放在了nodeday,然后cd/d到当前目录,然后执行1.js文件,输出1.js里的内容
  • shift+右键,打开的powershell终端直接在当前目录
    在这里插入图片描述

终端的快捷键

  • 上箭头,快速定位上一次命令
  • 使用tab,快速补全路径,打出首字母。使用tab键即可
  • esc键,快速清空当前已输入命令
  • 输入cls命令,清空终端
fs文件系统模块

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

  • fs.readFile()方法,用来读取指定文件中的内容
  • fs.whiteFile()方法,用来向指定的文件写入内容
  • 如果要在js代码中,使用fs模块操作文件,则先需要使用require导入
const fs = require('fs')

读取:fs.readFile()

fs.readFile(path,[options],callback)
fs.readFile("/index/1.js",'utf-8',function(err,datastr){
	//err代表失败之后
	//datastr代表成功之后
})
//中括号代表可选参数
  • 参数1,必选参数,字符串,表示读取文件的存放路径
  • 参数2,可选参数,表示以什么编码格式来读取文件,类似utf-8
  • 参数3,必选参数,回调函数,文件读取完成后,通过拿到读取成功,err为null,datastr为成功的返回值,失败的结果datastr为undefined

判断文件是否读取成功

  • 可以判断err对象是否为null

写入: fs.whiteFile(file,data,options,callback)

  • 参数1,必选参数,字符串,表示指定一个文件路径的字符串,也就是文件的存放路径
  • 参数2,必选参数,表示要写入的内容
  • 参数3,可选参数,表示以什么格式写入文件内容,默认是utf-8
  • 参数4,必须参数,文件写入完成后的回调函数,写入成功,err为null

判断文件是否写入成功

  • 可以判断err对象是否为null
fs模块,路径动态拼接问题

当fs模块操作文件的时候,提供的路径是以./或者…/开头的相对路径,就容易出现操作失败,动态拼接错误的问题
原因:代码在运行的时候,会执行node命令所处的目录,动态拼接出操作文件的完整路径

  • 解决方法
  • 提供路径的时候,提供绝对路径,注意,\两个斜线算一个,但移植性差,且容错率低
  • __dirname表示当前目录,前面是双下划线,打印的值就是当前目录的绝对路径

l例如:

fs.readFile("/index/1.js",'utf-8',function(err,datastr){
	//err代表失败之后
	//datastr代表成功之后
})
//变成
fs.readFile(__dirname+"/index/1.js",'utf-8',function(err,datastr){
	//err代表失败之后
	//datastr代表成功之后
})
path路径模块简介

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

  • 步骤一,想要使用path的方法,就得先导入它
const path = require('path')
path.join([…paths])方法

用来将多个路径片段拼接成一个完整的路径字符串

const pathstr = path.join('/a','/a','/b','../','/c')
console.log(pathstr)//输出,/a/a/c
//因为/b和../相互抵消了,../意味返回上一层
path.bacename(path,ext)方法

用来从路径字符串中,将文件名解析出来,经常通过这个方法获取路径中的文件名

  • 参数1,string必选参数,表示一个路径的字符串
  • 参数2,可选参数,表示文件扩展名
  • 返回值是路径中的最后一部分
const pathstr = path.bacename('/a/b/index.html')
consle.log(pathstr) //输出index.html
const pathstr1 = path.bacename('/a/b/index.html','.html')
consle.log(pathstr1) //输出index
path.extname(path)方法

可以获取路径中的扩展名部分

  • 参数,一个路径的字符串
const pathstr = path.extname('/a/b/index.html')
consle.log(pathstr) //输出.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值