Node.js学习

Node.js

1. Node.js安装

安装成功后cmd命令:node -v检测Node.js版本

打开.js文件命令,node 文件名

2. fs模块-读写文件

模块:类似插件,封装了方法/属性

fs模块:封装了与本机文件系统进行交互的,方法/属性

语法:

1.加载fs模块对象

const fs = require('fs') //fs是模块标识符,模块的名字

2.写入文件内容

fs.writeFile('文件路径', '写入内容', err => {
    // 写入后的回调函数
})

3.读取文件内容

fs.readFile('文件路径', (err, data) => {
    // 读取后的回调函数
    // data是文件内容 Buffer 数据流
})

案例:

const fs = require('fs') //fs是模块标识符,模块的名字

fs.writeFile('./tx.txt', '我是Node.js', (err) => {
    // 写入后的回调函数
    if (err) {
        console.log(err);
    } else {
        console.log('写入成功');
    }
})

fs.readFile('./tx.txt', (err, data) => {
    // 读取后的回调函数
    // data是文件内容 Buffer 数据流
    if (err) {
        console.log(err);
    } else {
        console.log(data.toString());
    }
})

3. Path路径

解决路径问题:

const path = require('path')
fs.readFile(path.join(__dirname, '../tx.txt'), (err, data) => {
    // 读取后的回调函数
    // data是文件内容 Buffer 数据流
    if (err) {
        console.log(err);
    } else {
        console.log(data.toString());
    }
})

4.压缩前端html

步骤:

1.读取源html文件内容

2.正则替换字符串

3.写入到新的html文件中
在这里插入图片描述

5. http模块-创建Web服务

需求:创建Web服务并响应内容给浏览器

步骤:

1.加载http模块,创建Web服务对象

2.监听request请求事件,设置响应头和响应体

3.配置端口号并启动Web服务

4.浏览器请求http://localhost:3000测试

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

server.on('request', (req, res) => {
    // 设置响应头:内容类型,普通文本:编码格式为utf-8
    res.setHeader('Content-type', 'text/plain;charset-utf-8')
    res.end('您好,Node.js')
})
server.listen(3000, () => {
    console.log('启动');
})

6.模块化开发

定义:CommonJS模块是为Node.js打包JavaScript代码的原始方式。Node.js还支持浏览器和其他JavaScript运行时使用的ECMAScirpt模块标准。

在Node.js中,每个文件都被视为一个单独的模块。

概念:项目是由多个模块文件组成的

好处:提高代码复用性,按需加载,独立作用域

使用:需要标准语法导出和导入进行使用

6.1 CommonJS标准

需求:定义util.js模块,封装基地址和求总数组和的函数

使用:

1.导出:module.exports={}

const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, val) => sum += val, 0)

module.exports = {
    对外属性名1: baseURL,
    对外属性名2: getArraySum
}

2.导入:require('模块名或路径')

const obj = reuqire('模块名或路径')
// obj就等于module.exports 导出的对象

6.2 ECMAScript标准-默认导出和导入

默认标准使用:

1.导出exprot default{}

const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, val) => sum += val, 0)

export default = {
    对外属性名1: baseURL,
    对外属性名2: getArraySum
}

2.导入:import 变量名 from '模块名或路径'

import obj from '模块名或路径'
//obj 就等于export default导出的对象

注意:Node.js默认支持CommonJS标准语法

如需使用ECMAScript标准语法,在运行模块所在文件夹新建package.json文件,并设置{"type":"module"}

7. 包

包的概念

包:将模块,代码,其他资料聚合成一个文件夹

包分类:
项目包:主要用于编写项目和业务逻辑

软件包:封装工具和方法进行使用

要求:根目录中,必须要package.json文件(记录包的清单)

注意:导入软件包时,引入的默认是Index.js模块文件/main属性指定的模块文件

7.1 npm-软件管理包

npm是Node.js标准的软件包管理器。

使用:

1.初始化清单文件:npm init -y(得到package.json文件,有则略过此命令)

2.下载软件包:npm i 软件包名称

3.使用软件包

7.2 npm-全局软件包nodemon

软件包区别:

本地软件包:当前项目内使用,封装属性和方法,存在于node_modules

全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置

nodemon作用:替代node命令,检测代码更改,自动重启程序

使用:
1.安装:npm i nodemon -g(-g代表安装到全局环境中)

2运行:nodemon待执行的目标js文件

删除软件包命令:npm uni 软件全名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nh-wsws

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值