
node
node的学习笔记
独坐空山后
努力成为前端大佬的打工仔
展开
-
KOA --- 5. 全局异常处理
在开发中,为了及时的反馈信息,与前端对接好,异常处理,是后端必须去做的一种事情,反馈正确的信息,可以加快bug的解决在 node中,由于基本都是异步方法,所以,为了能够处理好异步的异常,我们需要使用 async/await来解决一、异常处理Demo由于中间件的特性,使得它可以用来作为全局异常处理的一个好途径为了代码的分离性,我们可以新建一个 专门存放中间件的文件夹middlewares,然后新建一个文件exception.js,用来存放异常处理的代码exception.js.原创 2020-08-10 16:26:42 · 1160 阅读 · 5 评论 -
KOA --- 4. 接收参数
一、获取动态路径参数发送请求:http://localhost:3000/v1/3/classic/latest需要获取到里面的 3接收请求// 1. 获取路径里面的 idrouter.post('/v1/:id/classic/latest', async ctx => { const id = ctx.params.id console.log(path) ctx.body = {key: 'calssic'}})二、获取获取解析的查询字符串发送请求:htt原创 2020-08-06 19:58:49 · 373 阅读 · 0 评论 -
KOA --- 2. 路由的基本使用
一、安装npm install koa-router --save二、基本使用const Koa = require('koa')// 1. 导入路由const Router = require('koa-router')const app = new Koa()// 2. 实例化路由const router = new Router()// 3. 编写路由router.get('/classic/latest', async ctx => { ctx.body = {原创 2020-08-06 19:57:51 · 319 阅读 · 0 评论 -
KOA --- 2. 洋葱模型
一、什么是koa的洋葱模型特点: 独特的中间件流程控制,就是典型的洋葱模型二、解析洋葱模型在两个中间件函数,用 next 隔开对应的代码Democonst Koa = require('koa')const app = new Koa()// #1app.use( async (ctx, next) => { console.log('1') await next() console.log('1')})// #2app.use( async (ctx, ne原创 2020-08-05 16:40:39 · 1255 阅读 · 0 评论 -
KOA --- 1. 简介及安装
一、koa的特点KOA也是作为node开发web后端的一种框架,类似于 express ,但是,koa非常精简,适用于二次开发koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。官网:https://www.ko原创 2020-08-05 16:39:25 · 426 阅读 · 0 评论 -
Express ---- 5. 中间件
一、什么是中间件**中间件:**就是 做中间代理的操作。大多数情况下,中间件就是在做接收到请求和发送响应中间的一系列操作。事实上,express是一个路由和中间件的web框架,Express 应用程序基本上是一系列中间件函数的调用。输入网址到渲染的过程:浏览器发送请求express接受请求中间处理的过程,就是:中间件路由函数处理渲染(req, res)res.render渲染二、中间件的作用执行任何代码。对请求和响应对象进行更改。结束请求/响应循环。调用堆栈中的下一个原创 2020-07-21 14:58:53 · 142 阅读 · 0 评论 -
Express ---- 4. 获取POST请求参数
一、关于POST请求post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新。 相比于get请求,post所请求的数据会更加安全。上一章中我们发现get请求会在地址栏显示输入的用户名和密码(有中文时会转化为BASE64加密),而post请求则会将数据放入http包的包体中,这使得别人无法直接看到用户名和密码!二、Express如何设置POST请求1.我们的知道,首先我们得知道在form表单进行post请求,en原创 2020-07-20 15:42:41 · 1282 阅读 · 0 评论 -
Express ---- 3. 获取GET请求参数
一、关于get请求一般在网站开发中,get都用作数据获取和查询,类似于数据库中的查询操作,当服务器解析前台资源后即传输相应内容;而查询字符串是在URL上进行的,形如:http://localhost:8080/login?goods1=0001&goods2=0002二、获取前台get请求2.1、自己解析 get 请求一个URL的get请求,是由http://localhost:8080/login?goods1=0001&goods2=0002协议 + 域名 + 端口号原创 2020-07-19 19:48:05 · 946 阅读 · 0 评论 -
Express ---- 2. express路由
一、Express路由路由是指确定应用程序如何响应客户端对特定端点的请求,该特定端点是URI(或路径)和特定的HTTP请求方法。它包含一个请求方法、路径、和回调函数app.methods(path, callback)二、Express路由方法Express方法来源于 HTTP方法之一,附加在express类的实例,有:get、post、put、delete等app.get('/', function (req, res) { res.send('Hello World!')})ap原创 2020-07-19 19:46:17 · 204 阅读 · 0 评论 -
Express ---- 1. express和脚手架的安装和初始项目
一、介绍ndoe.js,一个基于javsscript运行环境的服务器语言,它的出现使得javascript有能力去实现服务器操作。在gitHub上ndoe.js的star数已接近6万,可见其受欢迎程度;而基于node.js的Express则把原先的许多操作变的简单灵活,一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。express官方网址:www.expressjs.com.cn二、安装2.1、express安装npm原创 2020-07-18 15:21:36 · 302 阅读 · 0 评论 -
Node--7.Node.js 连接 MySQL
Node.js 连接 MySQL一、安装库npm install mysql二、基本使用引入 mysql 模块: require('mysql')创建数据库对象: mysql.createConnection(options)数据库连接: connection.connect(callback)执行数据库语句: connection.query(sqlStr, callback)const mysql = require('mysql')// 1. 创建的数据库配置信息const原创 2020-07-17 15:04:02 · 258 阅读 · 0 评论 -
Node--6. url 模块和 http 模块
一、URL模块主要接口方法引入url模块: require('url');将网络地址解析成 对象: url.parse(httpUrl)// 引入url模块let url = require('url')let httpUrl = 'https://sale.vmall.com/pseries.html?cid=10618'// 将网络地址解析成 对象let urlObj = url.parse(httpUrl)console.log(urlObj)let targetUrl原创 2020-07-17 15:03:06 · 131 阅读 · 0 评论 -
Node--5.路径模块和系统模块
一、路径模块1.1、主要接口方法导入路径模块: require('path');获取路径信息的扩展名:path.extname(path)获取当前执行路径的完整路径:__dirname获取当前的执行文件:__dirname将字符串拼接成路径:path.resolve([...paths])将字符串拼接成路径:path.join([...paths])将路径解析成 对象:path.parse(path)/** * root: 根路径 * dir: 目录 *原创 2020-07-15 13:05:48 · 114 阅读 · 0 评论 -
Node--4.node事件
一、自定义事件1.1、自定义事件创建(node事件原理)// 自定义一个事件对象let readThing ={ // 用来放置事件的对象 event: {}, // 用来定义事件 // 参数:eventName --》 事件名, eventFn --》 事件 on: function(eventName, eventFn) { if(this.event[eventName]) { this.event[eventName].push(eventFn)原创 2020-07-15 13:05:13 · 231 阅读 · 0 评论 -
Node--3.文件流
与文件管理不同的是,文件流一般用于,大文件的操作一、文件流的写入1.1、主要接口方法导入文件模块: require('fs');创建写入流文件 对象:fs.createWriteStream(path[, options])监听文件打开 事件:ws.on('open', callback)监听文件关闭 事件:ws.on('close', callback)文件流式写入 方法:ws.write(chunk[, encoding][, callback])文件写入完成.原创 2020-07-09 20:34:47 · 132 阅读 · 0 评论 -
Node--2.文件系统---目录读取和删除
四、文件目录读取4.1、主要接口方法导入文件模块: require('fs');同步删除文件方法:fs.readdirSync(path[, options])异步删除文件方法:fs.readdir(path[, options], callback)4.2、异步读取目录步骤// 导入文件模块let fs = require('fs');fs.readdir('../NodeStudy2--文件管理', (err, files) => { if(err) { cons原创 2020-07-07 15:02:58 · 312 阅读 · 0 评论 -
Node--2.文件系统---文件删除
三、文件删除(慎用)3.1、主要接口方法导入文件模块: require('fs');同步删除文件方法:fs.unlinkSync(path)异步删除文件方法:fs.unlink(path, callback)3.2、异步删除文件步骤// 导入文件模块var fs = require('fs');fs.unlink('test.txt', () => { console.log('删除成功')})3.3、为异步方法封装成Promise封装的方法function fsD原创 2020-07-07 15:01:33 · 221 阅读 · 0 评论 -
Node--2.文件系统---文件写入
二、文件写入1.1、主要接口方法导入文件模块: require('fs');同步读取文件方法:fs.writeFileSync(file, data[, options])异步读取文件方法:fs.write(fd, Buffer.from(data, options.encoding), callback)1.2、异步读取文件步骤// 导入文件模块var fs = require('fs');// 异步fs.writeFile('test.txt', '你好帅哥\n', {flag:原创 2020-07-06 13:49:11 · 169 阅读 · 0 评论 -
Node--2.文件系统1---文件读取
一、文件读取node文档:http://nodejs.cn/api/fs.html#fs_fs_opensync_path_flags_mode1.1、主要接口方法导入文件模块: require('fs');同步读取文件方法:fs.readFileSync(path[, options])异步读取文件方法:fs.readFile(path[, options], callback)1.2、同步读取文件步骤// 1.导入文件模块var fs = require('fs');// 2.原创 2020-07-06 13:48:06 · 150 阅读 · 0 评论 -
Node--1.模块化
通过B站,老陈打码2020最新最全Node实战课程(含爬虫和web服务器开发)进行学习一、模块的导出和导入1. require用于: 用来在一个模块中引入另外一个模块。用法: 模块名可以用绝对路径也可以用相对路径,模块的后缀名.js可以省略。let a = require('./index1');let b = require('nodeStudy/src/index1');let c = require('./index1.js');作用:执行导入的模块中的代码 (原创 2020-07-05 15:49:43 · 174 阅读 · 0 评论