一、认识Node.js
Node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序
使用Node.js编写服务器端程序——编写数据接口、前端工程化;
Node.js环境没有BOM和DOM;
Node.js安装:下载node-v16.19.0msi安装程序
使用Node.js:在集成终端中,输入node xxx.js,回车即可执行
二、fs模块——读写文件
//模块:类似插件,封装了方法和属性;
//fs模块:封装了与本机文件系统进行交互的方法/属性
/**
* 基于fs模块读写文件内容
* 1.加载fs模块对象
* 2.写入文件内容
* 3.读取文件内容
*/
// 1.加载fs模块对象
const fs = require('fs')
// 2.写入文件内容
fs.writeFile('./text.txt','hello,Node.js',(err) => {
if (err) console.log(err)
else console.log('写入成功')
})
// 3.读取文件内容
fs.readFile('./text.txt',(err,data) => {
if (err) console.log(err)
else console.log(data.toString())
})
三、path模块——路径处理
在Node.js代码中,使用绝对路径
__dirname内置变量(获取当前模块目录——绝对路径)
path.join()会使用特定于平台的分隔符,作为界定符,将所有给定的路径片段连接在一起
四、URL中的端口号
端口号:标记服务器里不同功能的服务程序
端口号范围:0~65535之间的任意整数
注意:http协议,默认访问80端口
常见的服务程序:
Web服务程序:用于提供网上信息浏览功能
0-1023和一些特定端口号被占用,我们自己编写服务程序请避开使用
/**
* 创建web服务并响应内容给浏览器
* 1.加载http模块,创建web服务对象
* 2.监听request请求事件,设置响应头和响应体
* 3.配置端口号并启动web服务
* 4.浏览器请求http://localhost:3000测试
*/
// 1.加载http模块,创建web服务对象
const http = require('http')
const server = http.createServer()
// 2.监听request请求事件,设置响应头和响应体
server.on('request',(req,res) => {
//设置响应头——内容类型——普通文本以及中文编码格式
//内容中有中文字符,进行处理
res.setHeader('Content-Type','text/plain;charset=utf-8')
//设置响应体内容,结束本次请求与响应
res.end('欢迎使用Node.js')
})
// 3.配置端口号并启动web服务
server.listen(3000,() => {
console.log('Web服务启动成功!')
})
五、模块化
在Node.js中,每个文件都被视为一个单独的模块。
CommonJS标准
导出文件util
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce(
(sum,item) => sum += item,0
)
//导出
module.exports = {
url:baseURL,
arraySum: getArraySum
}
导入文件
/**
* 需求:定义util.js模块,封装基地址和求数组总和的函数
* 1.导出:module.exports = {}
* 2.导入:require('模块名路径')
*/
const obj = require('./util.js')
console.log(obj)
const result = obj.arraySum([5,1,2,3])
console.log(result)
ECMAScript标准
1.导出文件util
import { arraySum } from "../commonJS/util"
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce(
(sum,item) => sum += item,0
)
//导出
export default {
url: baseURL,
arraySum: getArraySum
}
2.导入文件
import { arraySum } from "../commonJS/util"
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce(
(sum,item) => sum += item,0
)
//导出
export default {
url: baseURL,
arraySum: getArraySum
}
3.让Node.js切换模块标准ECMAScript
运行模块所在文件夹,新建package.json
并设置package.json内容
{
"type": "module"
}
ECMAScript标准——命名导出和导入
按需加载,使用命名导出或导入
全部加载,使用默认导出或导入
import { arraySum } from "../commonJS/util"
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce(
(sum,item) => sum += item,0
)
/**
* 1.导出:export default {}
* 2.导入:import 变量名 from '模块名或路径'
*/
//导入
import {baseURL,getArraySum} from './util.js'
console.log(baseURL)
console.log(getArraySum)
六、 包
包分为项目包和软件包,项目包主要用于编写项目和业务逻辑,软件包主要封装工具和方法进行使用。
根目录中,必须有package.json文件,记录包的清单信息
功能 | 命令 |
执行js文件 | node xxx |
初始化package.json | npm init -y |
下载本地软件包 | npm i 软件包名 |
下载全局软件包 | npm i 软件包名 -g |
删除软件包 | npm uni 软件包名 |