Nodejs
文章平均质量分 93
Lee_Chen86
前端开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决火狐新窗口打开网页被拦截问题
阅读更多系列文章请访问我的GitHub 博客,本文示例代码请访问这里。Demo 运行方式请在这里下载示例代码,并在终端中运行如下命令启动 Demo:安装依赖npm install启动 Demonpm start示例代码的服务端,由Koa实现。由于谷歌浏览器无此问题,请在**火狐浏览器**中,打开http://localhost:8080/进行测试。问题描述出现问题的...原创 2020-04-14 17:54:50 · 7463 阅读 · 0 评论 -
Nodejs教程24:Stream流
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialFile System的问题我们通常会使用File System模块对文件进行读取,如下:fs.readFile('./test.txt', (error, buffer) => { if (error) { console.error(error)...原创 2019-03-19 23:38:21 · 372 阅读 · 0 评论 -
Nodejs教程19:WebSocket之一:使用Socket.io建立WebSocket应用
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialWebSocket的优势性能高。根据测试环境数据的不同,大约会比普通Ajax请求高2-10倍。HTTP是文本协议,数据量比较大。而WebSocket是基于二进制的协议,在建立连接时用的虽然是文本数据,但之后传输的都是二进制数据,因此性能比Ajax请求高。双向通信...原创 2019-03-11 22:03:43 · 618 阅读 · 0 评论 -
Nodejs教程22:使用Nodejs操作数据库
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialNodejs操作数据库Nodejs操作数据库需要用到mysql模块,通过npm i mysql -D进行安装。之后可以通过mysql.createConnection方法新建一个数据库连接,需要传入的参数有地址、端口、登录名、密码,以及需要连接的数据库。mysql.c...原创 2019-03-16 12:59:30 · 2708 阅读 · 0 评论 -
Nodejs教程25:启动器
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial原创 2019-03-21 16:43:12 · 315 阅读 · 0 评论 -
Nodejs教程23:使用async/await异步操作数据库
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial使用co-mysql异步操作数据库上一篇使用Node.js操作数据库,虽然能实现功能,但是异步操作需要不断写回调函数,代码严重冗余,而且阅读困难。可以使用co-mysql,将query方法该写为返回一个Promise,就可以使用async/await进行异步处理。我们...原创 2019-03-18 23:38:37 · 3177 阅读 · 0 评论 -
Nodejs教程26:Node.js项目之一:创建目录,环境配置,连接数据库
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。Node.js项目介绍利用学到的知识,实现一个简单但实用的小项目如下:这是一个商品列表,具有展示商品信息,添加商品,删除商品的功能。项目的文件夹结构├── package.json├── server.js # 服务器代码├── config # 项目配置文件夹│ ├── config.dev.js # 开发...原创 2019-03-26 13:54:40 · 1162 阅读 · 0 评论 -
Nodejs教程29:Node.js项目之四:添加路由,完成项目
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。添加各接口路由配置获取商品列表路由回调函数查询item_table表中的商品数据后,返回给前台,并将回调函数作为模块导出。示例代码:/lesson29/router/list.jsconst connection = require('../lib/database')module.exports = async (...原创 2019-03-30 14:31:33 · 733 阅读 · 0 评论 -
Nodejs教程27:Node.js项目之二:实现路由
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。创建路由在之前的例子中,我们总是要通过if else语句来判断请求的接口路径,并进行相应操作。这样会极大地降低开发效率,也不利于后期代码维护。因此,通常的开发中,都会使用路由对不同的接口进行操作。现在我们就来自己实现一个简单的路由:代码示例:/lesson27/lib/router.js1. 先创建一个router对...原创 2019-03-27 17:26:14 · 664 阅读 · 0 评论 -
Nodejs教程30(完结):PM2入门
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。PM2简介PM2是常用的node进程管理工具,它可以提供node.js应用管理,如自动重载、性能监控、负载均衡等。同类工具有Supervisor、Forever等。PM2安装使用PM2需要npm全局安装。npm install -g pm2启动PM2项目本文的测试项目直接选用上一篇完成的项目,地址为/lesson29/...原创 2019-04-11 00:09:19 · 3142 阅读 · 0 评论 -
Nodejs教程28:Node.js项目之三:实现服务器
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。创建服务器在实现了路由之后,就可以以此为基础实现服务器了。实现服务器分为以下几个步骤:示例代码:/lesson28/lib/http.js引入所需Node.js模块、服务器配置、路由模块封装统一处理请求数据的方法接收到的请求分为POST请求、GET请求,区分并进行处理POST请求分为数据请求、文件上传请求,区分并...原创 2019-03-28 22:50:23 · 238 阅读 · 0 评论 -
Express教程01:创建服务器、配置路由
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。Express介绍基于 Node.js 平台,快速、开放、极简的 Web 开发框架。Express的特点是易于入门,而且可以使用各种中间件扩展它的功能。但由于Express开发相对较早,主要使用回调函数进行异步操作,无法使用Async函数,因此原团队也开发了功能更强大的Koa来解决Express的不足之处。不过对于开发人员,...原创 2019-04-21 20:47:00 · 631 阅读 · 0 评论 -
Express教程03:自己实现一个body-parser中间件
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。中间件的实现逻辑我们在使用body-parser时的用法如下:server.use(bodyParser.json())这个方法等价于:server.use((req, res, next) => { // 处理数据代码。 ... // 处理完成后,交由下一级中间件处理。 next()})也就...原创 2019-04-27 07:51:01 · 492 阅读 · 0 评论 -
Express教程04:处理文件上传
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。使用multer处理文件上传处理文件上传,自然也离不开中间件的帮助,此处以Multer为例介绍一下文件上传中间件的使用。但Multer只能处理enctype="multipart/form-data"的form表单提交的数据。示例代码:/lesson04/server.js安装Multer:npm install -...原创 2019-05-03 11:06:31 · 2217 阅读 · 0 评论 -
Express教程02:使用中间件处理静态文件和数据请求
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。static中间件static是Express自带的中间件,主要用于处理客户端对于静态文件的请求,用法如下:示例代码:/lesson02/server.jsserver.use(express.static('./static/'))打开http://localhost:8080/index.html,即可看到页面显示...原创 2019-04-24 09:07:37 · 816 阅读 · 0 评论 -
Express教程05:Cookie
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。Cookie介绍Cookie存储在浏览器,在浏览器请求服务器时,其中的数据都会被发送到服务端,常用来做用户信息校验等。但由于Cookie存储在浏览器,容易受到篡改,安全性较差。使用cookie-parser处理Cookie处理Cookie,可以使用中间件cookie-parser读取Cookie示例代码:/lesson...原创 2019-05-09 21:19:42 · 284 阅读 · 0 评论 -
Express教程06:Session(完结)
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。Session介绍Session存储在服务器,但它并不独立使用,而是与Cookie或配合使用。也就是说,在Cookie中存储了一个ID,服务端在接收到Cookie时对ID进行校验,只有通过校验才可以进行下一步处理,否则将让用户重新登录。Session相对单纯的Cookie校验而言比较安全,但也有可能发生Session劫持。使...原创 2019-06-01 20:07:57 · 136 阅读 · 0 评论 -
Nodejs教程02:response.write
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。response.write在教程01的Demo中,我们使用了http.createServer创建一个服务器,在它的回调函数中,会传入2个参数,分别为request(请求对象)和response(响应对象)。通常使用response.write方法向前端返回数据,该方法可调用多次,返回的数据会被拼接到一起。需要注意的是,必须...原创 2019-09-09 20:59:47 · 440 阅读 · 0 评论 -
Nodejs教程17:multiparty
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialmultiparty上一节虽然完成了完整的文件上传流程,但实际工作中不可能自己从头开发所有功能,这样效率很低。我们可以尝试使用第三方库来完成POST请求的处理,如multiparty。multiparty demo通过如下例子,可以测试一下multiparty的功能...原创 2019-03-07 23:06:44 · 4589 阅读 · 0 评论 -
Nodejs教程21:数据库入门
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial数据库的分类文件数据库它的优点是:数据保存在单一文件中,因此部署十分方便,常用来嵌入到APP中保存数据,以及手机中的短信、通话记录等。常用的有SQLite、Access等。关系型数据库关系型数据库的功能强大,适用场景丰富,它的特点是数据之间互相是关联的。...原创 2019-03-14 23:54:00 · 233 阅读 · 0 评论 -
Nodejs教程18:Ajax跨域
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialAjax跨域问题的产生原因Ajax请求无法跨域,在前端开发中是个常见问题,它的产生原因是,在浏览器接收服务端返回数据时,会检查该数据是否和当前发起请求的网址在同一域名下。若不是,则会丢弃该数据,并返回一个跨域错误。在Ajax请求中,遵循如下流程:网页提交一个Ajax请...原创 2019-03-10 16:43:56 · 283 阅读 · 0 评论 -
Nodejs教程01:Nodejs简介
Nodejs简介简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Nodejs的应用场景由于Nodejs目前还不够成熟,因此一般不会用作独立开发,它的主要用途如下中间层通常在开发应用时,出于安全...原创 2019-01-28 23:30:56 · 2085 阅读 · 0 评论 -
Nodejs教程02:response.write
http.createServer在教程01的Demo中,我们使用了http.createServer创建一个服务器,在它的回调函数中,会传入2个参数,分别为request(请求对象)和response(响应对象)。通常使用response.write方法向前端返回数据,该方法可调用多次,返回的数据会被拼接到一起。需要注意的是,必须调用response.end方法结束请求,否则前端会一直处于...原创 2019-03-17 23:03:41 · 1774 阅读 · 0 评论 -
Nodejs教程03:File System
File SystemFile System是Nodejs中用来操作文件的库,可以通过const fs = require(‘fs’)引用。常用的方法有异步文件读取fs.readFile、异步文件写入fs.writeFile、同步文件读取fs.readFileSync、同步文件写入fs.writeFileSync。由于同步操作可能会造成阻塞,通常建议使用异步操作避免该问题。fs.writeF...原创 2019-01-29 23:18:00 · 302 阅读 · 2 评论 -
Nodejs教程06:处理接收到的GET数据
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial常用请求方式GET和POST是最常用的HTTP请求方法,除此之外还有DELETE、HEAD、OPTIONS、PUT、TRACE等,但都很少用到。GETPOST主要用途是获取数据主要用途是发送数据数据放在HTTP请求Header中,通过URL进...原创 2019-02-27 23:27:05 · 697 阅读 · 0 评论 -
Nodejs教程07:处理接收到的POST数据
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial处理POST数据示例代码:/lesson07/server.jsPOST数据量通常较大,通常不会一次性从客户端发送到服务端,具体每次发送的大小由协议,以及客户端与服务端之间的协商决定。因此,Nodejs在处理POST数据时,需要通过request对象的data事件...原创 2019-02-28 22:12:51 · 1691 阅读 · 0 评论 -
Nodejs教程13:URL模块
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialurl.parseURL模块用于对URL的解析,常用的是url.parse方法。假设有一个url为https://www.google.com:8080/a/b?x=1&y=2&y=3&y=4,可以用url.parse方法进行解析。示例代码:...原创 2019-03-05 22:53:53 · 1081 阅读 · 0 评论 -
Nodejs教程14:querystring模块
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialquerystringquerystring用来对url中的query字符串进行解析,常用的方法有querystring.parse和querystring.stringify。querystring.parsequerystring.parse方法用于解析URL 查...原创 2019-03-05 22:54:06 · 267 阅读 · 0 评论 -
Nodejs教程04:使用http和fs模块实现一个简单的服务器
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial标题原创 2019-02-25 22:52:01 · 1104 阅读 · 0 评论 -
Nodejs教程09:实现一个带接口请求的简单服务器
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial带接口请求的简单服务器需求虽然当前还未涉及到数据库的知识,但已经可以通过文件读写,实现一个简单的服务器,需求如下:用户通过GET方法请求/reg接口,实现注册流程。用户通过POST方法请求/login接口,实现登录流程。非接口请求则直接返回相应文件。实现思路...原创 2019-03-02 00:00:39 · 1060 阅读 · 1 评论 -
Nodejs教程15:net模块初探
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialnet模块net 模块用于创建基于流的 TCP 或 IPC 的服务器(net.createServer())与客户端(net.createConnection())。net模块是专门用于网络通信的模块,若当前的数据交互不通过HTTP协议,就可以使用net模块,如WebS...原创 2019-03-05 22:55:11 · 542 阅读 · 0 评论 -
Nodejs教程10:Nodejs的模块化
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialNodejs定义模块Nodejs的模块化由于出现的较早,因此它遵循的是CommonJS规范,而非ES6的模块化。在Nodejs的模块化中,最常用到的有module对象、exports对象、require方法。其中module和exports用于输出模块,require...原创 2019-03-02 23:17:09 · 347 阅读 · 0 评论 -
Nodejs教程05:HTTP协议
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialHTTP协议简介协议名称RFC编号特点HTTP 1.0RFC-1945非持久连接,每个请求完全独立,速度较慢HTTP 1.1RFC-2616持久连接,连接成功之后保持一段时间(一般为30秒),期间若再次请求则不用重新连接HT...原创 2019-02-26 23:05:24 · 385 阅读 · 0 评论 -
Nodejs教程11:assert(断言)模块
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialassert的用途assert(断言)通常用来对代码进行校验,若出错则阻止程序运行,并抛出一个错误。assert的用法示例代码:/lesson11/assert.js尝试运行如下代码:const assert = require('assert')asse...原创 2019-03-03 21:23:50 · 640 阅读 · 0 评论 -
Nodejs教程12:path(路径)模块
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorialpath(路径)path模块主要用来对文件路径进行处理,比如提取路径、后缀,拼接路径等。path的使用接下来通过一些例子熟悉一下path的使用:代码示例:/lesson12/path.jsconst path = require('path')const ...原创 2019-03-03 23:16:24 · 678 阅读 · 0 评论 -
Nodejs教程20:WebSocket之二:用原生实现WebSocket应用
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial原创 2019-03-13 23:22:18 · 7787 阅读 · 5 评论 -
Nodejs教程16:POST文件上传
示例代码请访问我的GitHub:https://github.com/chencl1986/nodejs-tutorial原创 2019-03-07 00:31:32 · 3318 阅读 · 0 评论 -
Koa教程之一:路由、Static、Cookie、连接数据库
Koa与Express的区别Express是基于回调函数开发。Koa是基于Promise思想开发。Koa1基于Generator,Koa2同时支持Generator和Async/await,但使用Generator会收到警告,因为Koa3是完全基于Async/await。使用Koa创建一个服务器const Koa = require('koa')const server = ne...原创 2018-11-14 23:38:12 · 1273 阅读 · 0 评论
分享