Node.js小记(上)

Node.js 学习小记

Node.js 学习小记

一、初识Node.js

为什么js可以在浏览器中运行

1.1 js 运行环境

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

1.2什么是Node.js ?

在这里插入图片描述

1.3 Node.js可以做什么?

可以做什么?

1.4 终端打开方式

终端打开方式

二、 fs.readFile()的语法模块

2.1 fs.readFile()的语法格式

在这里插入图片描述

2.2 示例代码

在这里插入图片描述

2.3 fs模块-路径动态拼接问题

在这里插入图片描述

2.4 path.join() 方法

在这里插入图片描述

2.5 path.basename 方法

在这里插入图片描述

2.6 path.extname

在这里插入图片描述

2.7 总结 时钟案例

在这里插入图片描述

三、 http模块

3.1 什么是http模块?

在这里插入图片描述

3.2 IP 地址

在这里插入图片描述

四、服务器相関概念

4.1 端口号

端口号
在这里插入图片描述

4.2创建最基本的web服务器

步骤1:
导入http模块
const http = require (‘http’)

步骤2;
创建web实例
const server = http.creatserve
步骤3,;
为服务器绑定 request 事件 监听客户端请求
serve.on(‘request’,function(req,res){
console.log(‘someone visit our web server’)
})
步骤4:
启动服务器
serve.listen(3000,function(){

})
在这里插入图片描述

4.3 根据不同的url响应不同的html内容

在这里插入图片描述

五、模块化

5.1 什么是模块化?

在这里插入图片描述
在这里插入图片描述

5.2 模块分类

在这里插入图片描述

5.3 加载模块

在这里插入图片描述

5.4 模块作用域

在这里插入图片描述

5.5 向外共享模块作用域中的成员

module.exports 对象
在这里插入图片描述
使用误区:
在这里插入图片描述
模块化规范:
在这里插入图片描述
在这里插入图片描述

六、 npm与包

6.1 包的来源

在这里插入图片描述

6.2 为什么需要包?

在这里插入图片描述

6.3 从哪里下载包?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.4 传统格式化时间
// 1. 定义格式化时间的方法
function dateFormat(dtStr) {
  const dt = new Date(dtStr)

  const y = dt.getFullYear()
  const m = padZero(dt.getMonth() + 1)
  const d = padZero(dt.getDate())

  const hh = padZero(dt.getHours())
  const mm = padZero(dt.getMinutes())
  const ss = padZero(dt.getSeconds())

  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}

// 定义补零的函数
function padZero(n) {
  return n > 9 ? n : '0' + n
}

module.exports = {
  dateFormat
}
// 导入自定义的格式化时间的模块
const TIME = require('./15.dateFormat')

// 调用方法,进行时间的格式化
const dt = new Date()
// console.log(dt)
const newDT = TIME.dateFormat(dt)
console.log(newDT)
6.5 格式化时间 高级做法 用npm包管理工具

安装包的命令: npm install
简写: npm i

// 1. 导入需要的包
// 注意:导入的名称,就是装包时候的名称
const moment = require('moment')

const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)
6.6 npm i @ 下载指定版本的包
6.7 包的语义化版本规范:

在这里插入图片描述

6.8 包管理配置文件

在这里插入图片描述

6.9 快捷创建packge.json

在这里插入图片描述

6.10 dependencies节点:

在这里插入图片描述

6.11 一次性安装所有包

在这里插入图片描述

6.12 卸载包

卸载包

6.13 包管理配置文件

devDependencies 节点
在这里插入图片描述

6.14 安装指定的包

在这里插入图片描述npm i – production 安装项目上使用的包

6.15 解决下包速度慢的问题,使用镜像源

在这里插入图片描述

6.16 使用nrm 更方便的切换下包的镜像源

在这里插入图片描述
nrm ls 查看所有可用镜像源
nrm use taobao 将下包镜像源切换为taobao服务器

七、项目包

在这里插入图片描述

7.1 全局包

在这里插入图片描述

7.2 把md文档转为html网页

在这里插入图片描述

八、开发属于自己的包

8.1 规范的包结构

在这里插入图片描述

8.2 初始化包的基本结构

在这里插入图片描述
package.json
在这里插入图片描述

拓展运算符

8.3 不同功能进行模块化拆分

在这里插入图片描述

九、 发布包

9.1 注册npm账号

在这里插入图片描述

9.2 发布包

npm publish

9.3 删除包

npm unpublish 包名 --force

在这里插入图片描述

十、 模块的记载

10.1 自定义模块的加载

在这里插入图片描述

10.2 第三方模块的加载机制

在这里插入图片描述

10.3 目录作为模块

在这里插入图片描述

十一、

Express 简介

11.1 Express 能做什么?

在这里插入图片描述
安装 版本
在这里插入图片描述

11.2 监听get 请求

在这里插入图片描述

11.3监听 post 请求

在这里插入图片描述

11.4 把内容响应给客户端

在这里插入图片描述

11.5 获取URL 中携带的查询参数

在这里插入图片描述

11.6 托管静态资源

在这里插入图片描述

托管静态资源
外部调用 app.use 内部调用express.static()
app.use(express.static(./))

十二、 nodemom

在这里插入图片描述

12.1 nodemon 安装

在这里插入图片描述

12.2 使用nodemon

在这里插入图片描述

12.3 Express 中的路由

在这里插入图片描述

12.4 模块化路由

在这里插入图片描述

12.5 模块化路由

在这里插入图片描述

12.6 路由模块

路由模块:

// 这是路由模块
// 1. 导入 express
const express = require('express')
// 2. 创建路由对象
const router = express.Router()

// 3. 挂载具体的路由
router.get('/user/list', (req, res) => {
  res.send('Get user list.')
})
router.post('/user/add', (req, res) => {
  res.send('Add new user.')
})

// 4. 向外导出路由对象
module.exports = router

app.use() 注册路由模块

12.7 Express 中间件

在这里插入图片描述

12.8 Express 中间件的调用流程

在这里插入图片描述

12.9 一个简单的中间件

在这里插入图片描述

12.10 注册全局生效的中间件

在这里插入图片描述

12.11 定义多个全局中间件

在这里插入图片描述

12.12路由级别中间件

在这里插入图片描述
代码示例

十三、 中间件分类

13.1 错误级别的中间件

在这里插入图片描述

13.2 Express 内置的中间件

内置中间件
在这里插入图片描述

13.3 安装中间件步骤

在这里插入图片描述

13.4 自定义中间件

实现步骤:
在这里插入图片描述

13.5 监听req的data事件

在这里插入图片描述

13.6 将自定义中间件封装为模块

// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()

// 1. 导入自己封装的中间件模块
const customBodyParser = require('./14.custom-body-parser')
// 2. 将自定义的中间件函数,注册为全局可用的中间件
app.use(customBodyParser)

app.post('/user', (req, res) => {
  res.send(req.body)
})

// 调用 app.listen 方法,指定端口号并启动web服务器
app.listen(80, function () {
  console.log('Express server running at http://127.0.0.1')
})

十四、使用Express 写接口

14.1 代码示例

// 导入 express
const express = require('express')
// 创建服务器实例
const app = express()

// 配置解析表单数据的中间件
app.use(express.urlencoded({ extended: false }))

// 必须在配置 cors 中间件之前,配置 JSONP 的接口
app.get('/api/jsonp', (req, res) => {
  // TODO: 定义 JSONP 接口具体的实现过程
  // 1. 得到函数的名称
  const funcName = req.query.callback
  // 2. 定义要发送到客户端的数据对象
  const data = { name: 'zs', age: 22 }
  // 3. 拼接出一个函数的调用
  const scriptStr = `${funcName}(${JSON.stringify(data)})`
  // 4. 把拼接的字符串,响应给客户端
  res.send(scriptStr)
})

// 一定要在路由之前,配置 cors 这个中间件,从而解决接口跨域的问题
const cors = require('cors')
app.use(cors())

// 导入路由模块
const router = require('./16.apiRouter')
// 把路由模块,注册到 app 上
app.use('/api', router)

// 启动服务器
app.listen(80, () => {
  console.log('express server running at http://127.0.0.1')
})

14.2 CORS资源跨域共享

在这里插入图片描述

14.3 CORS 响应头部

在这里插入图片描述

14.4 简单请求

简单请求

14.5 预检请求

预检请求

14.6 JSONP

JSONP

14.7 实现 JSONP 接口的步骤

步骤

14.8 在网页中 使用jQuery 发起JSONP 请求

在这里插入图片描述

十五、 数据库

15.1 什么是数据库?

database 数据库是用来 组织、存储和管理数据的仓库。
数据库

15.2 常见的数据库及分类

在这里插入图片描述
在这里插入图片描述

15.3 传统型数据库的数据组织结构

在这里插入图片描述

15.4 库、表、行、字段的关系

在这里插入图片描述

15.5 了解 安装 MySQL 相关软件

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值