Node.js 学习小记
Node.js 学习小记
一、初识Node.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
14.7 实现 JSONP 接口的步骤
14.8 在网页中 使用jQuery 发起JSONP 请求
十五、 数据库
15.1 什么是数据库?
database 数据库是用来 组织、存储和管理数据的仓库。
15.2 常见的数据库及分类