Node.js 学习记录
Node.js+Express后端开发。以项目开发为基础,记录开发中的知识点。
小猿猪哥
这个作者很懒,什么都没留下…
展开
-
Egg.js (三) 文件上传 阿里云OSS
在三年前前也写过关于阿里云OSS上传的,但是当时使用的Express。Node.js阿里云OSS文件上传这次使用的Egg.js,在实际操作中也发现阿里云OSS的文档和官网操作有了一些变化了。在下面的操作需要有先看看如下文档:Egg.js-获取上传的文件对象存储 OSS > SDK 参考 > Node.js对象存储 OSS > 开发指南 > 访问域名(Endpoint) > 访问域名和数据中心egg-multipart在 config/config.default原创 2020-06-18 10:05:04 · 2038 阅读 · 0 评论 -
Egg.js (二) GET和POST请求
在看这个之前还是需要先看文档:https://eggjs.org/zh-cn/basics/router.htmlhttps://eggjs.org/zh-cn/basics/controller.html这里我所做的也就是一个文档的搬运工再根据自己的需求整理了一下而已。在之前的Node.js系列博客中都是用的Express,这次使用Egg.js之后明显感觉简洁多了。GET请求参数获取方式一:'use strict';const Controller = require('egg').Co原创 2020-06-16 10:26:07 · 2474 阅读 · 0 评论 -
Egg.js (一) 新建第一个项目
原由之前的《Node.js 学习记录》采用的Express,由于年久失修,项目启动都有问题了。所以也懒得再去维护和新增功能了。加之最近两年使用antd比较多,上面的Egg.js也有所接触,所以觉得就以这个为基础新建项目玩玩。看文档做了这么多年的开发,遇见问题之前先看文档,没有为什么。https://eggjs.org/zh-cn/intro/quickstart.html也不要像个萌新那样,不懂也不知道差,看视频的。先看看文档再想想,思路就清晰了。新建项目https://eggjs.org/zh原创 2020-06-12 10:04:32 · 952 阅读 · 0 评论 -
Node.js爬取妹子图-async的使用
在上一篇中《Node.js爬取妹子图-crawler爬虫的使用》,主要介绍的crawler。之前在写《Node.js 2小时爬取驴妈妈8W+条旅游数据》时,使用的是node-schedule,做的定时任务,这样就可以不间断的爬取了。 这次在爬取妹子图使用的是async,这次的效率明显的提升了很多,感觉1分钟就爬取了37581条数据,再来8W条也是小case。 。 在上一篇《Node.js爬取...原创 2018-04-04 11:03:21 · 1058 阅读 · 0 评论 -
Node.js爬取妹子图-crawler爬虫的使用
去年10月份写过《Node.js 2小时爬取驴妈妈8W+条旅游数据》。之前做的是使用request 做网路请求和 cheerio做DOM解析。 后来在网上看见了crawler,昨天就把crawler把玩了了一把。感觉使用起来还可以,他的作用和上面的两个包的作用是一样的。 这次我爬取的是妹子图。 在爬取之前,还是建议先看看crawler怎么使用。其实它的是有还是很简单的。这里不再赘述,请自...原创 2018-04-04 10:35:16 · 4217 阅读 · 0 评论 -
微信小程序开发(十七)模板消息
最近两个月在重构公司的一个商城项目,小程序端,PC端,后台部分也大部分是我做的。比较忙,所以博客写的比较少。这两天在调试微信支付之后个用户发送一个模板消息的功能。一直出现errcode: 41028, errmsg: “invalid form id hint:的错误。在网上看了一个基本没有一个正确的答案,基本都是照搬微信的文档,并没有说出调试的细节。关于文档,大家可以直接看微信的文档-小程序模板原创 2018-01-05 12:07:25 · 1793 阅读 · 0 评论 -
Node.js 2小时爬取驴妈妈8W+条旅游数据
节前在CSDN博客看了《用python爬虫爬取去哪儿4500个热门景点,看看国庆不能去哪儿》。 后来我自己用Node.js去爬取一下,发现有问题。 去哪儿接口:http://piao.qunar.com/ticket/list.htm?keyword=北京®ion=&from=mpl_search_suggest&page=1。问题这个接口一个IP短时间访问次数多了是需要验证的,之后就是不原创 2017-10-12 15:24:32 · 3508 阅读 · 3 评论 -
Node.js 批量下载图片
前言最近接手一个项目,是一个兄弟公司写的,使用PHP的ThinkPHP做的前后端在一起的项目。代码是别人搞到服务器上面去的,突然那边的整个技术部解散了,而我们这边在此之前我还没看见过代码。项目虽说部署到了服务器上,且可以打开,但是一堆bug。 没办法只好硬着头皮在线上修改。之前也就是换了两天时间在本地把PHP环境搭建过。还算好,在一天之内修改而几个bug,使得项目在上线的时候,没有明显的bug了。原创 2017-09-28 15:03:03 · 3387 阅读 · 2 评论 -
Node.js实现GitHub第三方登录
之前在《Node.js+express+MySQL仿美团注册登录绑定第三方登录》这里做的是app的第三方登录,里面有app的流程。后来在使用阿里巴巴矢量图库-http://www.iconfont.cn/ 的时候看见了使用GitHub第三方登录,这个是Web端的,今天就自己动手实现了这个功能。登录流程 上图就是基本的登录流程了。GitHub设置填写应用信息1.首先登录你的GitHub,然后点击进入原创 2017-08-28 16:50:27 · 4924 阅读 · 0 评论 -
Node.js腾讯云COS文件上传
昨天写了一篇《Node.js阿里云OSS文件上传》。今天上班来了想起,原来我还有腾讯云的产品,于是见看了下腾讯的对象存储-COS。使用步骤进入控制台腾讯云的页面,发现就没有控制台这三个字,那么怎么进去了?只能点击云产品,选择对应的产品进去了。获取APPID获取SecretId和SecretKey 这里大家根据自己上一步获取的APP的开头数组点击进入。我的是125开头的。 这里不要选错了。选错原创 2017-08-25 11:42:29 · 9707 阅读 · 5 评论 -
Node.js阿里云OSS文件上传
前言之前做的《微信小程序开发(二)图片上传》和《Node.js+express+MySQL使用七牛云实现的用户头像修改》,使用的都是七牛云的对象云储存服务。这次公司使用另外一套系统,别人要求使用阿里云的服务,所以就研究一些阿里云的OSS,发现我的阿里云里面是有OSS的,所以就写了一些玩了一下。使用步骤新建bucket首先登陆阿里云,进入控制台,对象存储OSS。 获取密匙 获取服务区域这里给大家一原创 2017-08-24 16:05:52 · 12930 阅读 · 1 评论 -
微信小程序开发(十五)获取位置
最近又在做小程序开发的工作。这次需要获取用户的地理位置,就是在界面上显示用户所在的城市。准备工作准备工作就是看小程序的文档-小程序-获取位置。 这里小程序提供了一个接口wx.getLocation(OBJECT)。接口参数 这里主要是那个type参数。success返回 这里我们可以看见返回的数据里面和位置相关的只有经纬度latitude和longitude。但是这个是数字,用户并不需要关系这原创 2017-08-22 09:35:49 · 1623 阅读 · 0 评论 -
Mysql 数据分页处理(Node.js的实现)
最近做项目的时候,有一个接口需要分页处理,就是每页返回20条数据:比如:https://api.cn?pagg=1 这里的page就是需要获取的哪一页数据的请求参数,返回的json,当然就是返回给前台需要的数据。实例PC端 这个做PC端是比较常见的,这个其实需要后端返回一个必须要的数据,就是总的条数,至于每页多少条这个是需求定的,当然还有的就是当前的页数和当前页数的数据。 比如下面的数据:{原创 2017-08-15 10:22:37 · 11227 阅读 · 8 评论 -
Node.js接入云片网短信-发送短信
之前开发的公司的一个物流司机送货的app,后来需要接入短信放功能。就是当司机开始送货的时候,就发送一个短信给客户,提示他,他的货物将在3小时内送达。为此当初在选择短信平台的时候,选择了一家武汉本地的平台–云片网。目前已经使用了3个月,还没发现上面异常。今天就把后台接入短信功能分享出来。获取APPKEY登录云片网云片网。点击左上角的登录按钮,输入你的账号和密码即可。获取APPKEY 这里我们就可以获原创 2017-08-11 10:38:26 · 2863 阅读 · 2 评论 -
Node.js程序配置使用Nginx服务器(2017.11.17添加https)
之前在使用windows server系统的使用,部署Node.js代码只需要远程连接windows server系统桌面,启动终端在项目目录下面执行npm start就可以正常启动Node.js代码。但是现在是阿里云ubuntu的Linux系统,虽说也需要先远程到服务器启动Node.js代码,但是外网并不能访问到。这个时候就需要Web服务器了。这里选用的Nginx。Nginx的安装和配置这里借用网原创 2017-08-01 15:03:22 · 1178 阅读 · 0 评论 -
Node.js多个异步回调的处理
问题经常有人在问,多个ajax请求,怎么在请求都结束之后再处理数据。这个问题在做前端的时候,我没遇见过。但是最近在做node后端的时候,遇见了:就是node后端发送多个网络请求,要在请求结束之后再处理数据,这里和ajax的那个问题是一样的。解决这里使用了一个依赖包async。 关于他的使用这里可以看文档即可。这里使用了一个each。 实例添加依赖var request = require('re原创 2017-07-18 10:32:49 · 2609 阅读 · 0 评论 -
Node.js进程管理
之前阿里云送了半年的云服务器,当时选择的是windows server 2012的系统,自带IIS,感觉就是多了一台win电脑。当时使用node.js的时候,可以只在win的终端打开,我在mac上面关闭远程连接,node.js服务依然可以正常运行。后来换了自己买了一台CentOS的,这个就尴尬了。使用mac终端连接服务器,开启Node.js服务,发现关闭了终端,Node.js的服务也关闭了。这里问题原创 2017-07-18 10:03:52 · 1040 阅读 · 0 评论 -
Ubuntu 安装Node.js、Express和MySQL
Node.js升级sudo npm install -g n sudo n stable 升级npm sudo npm install npm -g安装1. curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - settup_8.x 只需要把数字换掉就可以了(需要安装的版本号)2. sudo ap原创 2017-07-06 09:09:23 · 1830 阅读 · 2 评论 -
微信小程序开发(十)小程序支付-查询退款
应用场景提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。接口说明 这里退款还是根据商户订单号-out_trade_no去微信那边查询代码实现/* * 根据商户订单号out_trade_no 查询退款 */router.all('/api/wxpay/refundQuery', function(req,原创 2017-06-22 10:41:38 · 4474 阅读 · 0 评论 -
微信小程序开发(九)小程序支付-申请退款
之前公司做的app的订单退款是,客户打电话给公司客服退款。这个一旦用订单量大了就是一件很要命的事情,工作量大,效率低且用户体验不好。题外话这里不是黑ofo。之前本着体验一下ofo的小黄车,就注册了一个小黄车账号,充值了20送了5快。后来发现我上下班每天经过的路段就很好少有小黄车,有也是被个人占用了。一怒之下就退了押金,这个退款到还是很快。后来退账户余额就是一件很恼火的事情。打ofo的400电话,不是原创 2017-06-22 10:31:41 · 16287 阅读 · 4 评论 -
微信小程序开发(八)小程序支付-关闭订单
如果你已经看了前面的《微信小程序开发(五)小程序支付-统一下单》和《微信小程序开发(七)小程序支付-查询订单》。这个关闭订单就更加不是问题了。应用场景以下情况需要调用关单接口:商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。接口原创 2017-06-22 10:09:16 · 10324 阅读 · 0 评论 -
微信小程序开发(七)小程序支付-查询订单
应用场景该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。 需要调用查询接口的情况: ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; ◆ 调用支付接口后,返回系统错误或未知交易状态情况; ◆ 调用被扫支付API,返回USERPAYING的状态; ◆ 调用关单或撤销接口API之前,需确认支付状态;接口说明 这里如果已经原创 2017-06-22 09:50:54 · 6502 阅读 · 1 评论 -
微信小程序开发(六)小程序支付-notify_url
在《微信小程序开发(五)小程序支付》里的微信支付里有一个notify_url(https://www.hgdqdev.cn/api/wxpay)。notify_url是位置支付成功后的一个通知地址:接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。 这里存在一个问题就是怎么获取微信通知过来的数据。支付结果通知文档。 具体实现 我的后台是node.js + ex原创 2017-06-13 15:21:45 · 18507 阅读 · 2 评论 -
微信小程序开发(五)小程序支付-统一下单
准确来说小程序的支付在上个月就已经做完了,只是那个时候项目原型和UI还没出来就没正式动工。现在项目快做完了,就有时间写博客了。 在做小程序支付希望你已经熟读微信的文档微信支付-小程序-手机端和微信支付-小程序-后台。且你已经有了 AppID: "wx****************", // 小程序ID Secret: "****************************原创 2017-06-13 14:40:43 · 33854 阅读 · 16 评论 -
微信小程序开发(四)获取用户openid
在小程序里面有两个地方获取用户的openid。 一个是wx.login(OBJECT),第二个是wx.getUserInfo(OBJECT)。 这里我使用的是第一种wx.login(OBJECT)。步骤 wx.login({ success: function(res) { if (res.code) { // 第一步: 获取code //发起网络请求 wx原创 2017-06-13 12:05:07 · 8575 阅读 · 5 评论 -
微信小程序开发(二)图片上传
在之前的博客《Node.js+express+MySQL使用七牛云实现的用户头像修改》,已经实现了在MUI框架或者《 Ajax实现图片上传》。之前都是使用Node.js写的一个后台接口,就可以使用ajax上传了,在MUI框架中的mui.ajax其实还是ajax。在《Node.js+express+MySQL使用七牛云实现的用户头像修改》我已经详细的说了怎么配置七牛了,这里不再说明。准备工作配置upl原创 2017-06-01 09:42:56 · 6500 阅读 · 3 评论 -
一种仓库扫码出库系统的实现
前言醉经在做公司的仓库管理系统,这个系统设计到商品出库、回仓、损耗等。系统在设计之初就一直到考虑仓库人员使用的方便性,提高他们的工作效率。但是不管我们怎样做,仓库那边的人员总说系统复杂,不会用。现在我们做的是只需要他们点击就可以完成,很少有要他们输入的地方,还觉得复杂,作为开发的我也觉得很无奈,我们的系统也确实存在问题,但是我想操作已经是经量简化了。上周分仓那边的说,忘记了自己的登录用户密码,密码都原创 2017-05-15 17:59:17 · 14259 阅读 · 1 评论 -
Ajax实现图片上传
在《Node.js+express+MySQL使用七牛云实现的用户头像修改》,我们已经实现了使用MUI做的H5的app实现了图片的上传。现在公司的PC端需要实现图片的上传,但是之前图片上传的接口已经写好了。就是《Node.js+express+MySQL使用七牛云实现的用户头像修改》里提到的接口。 现在前端要做的就是去适应这个接口。一般做的都是表单提交,显示使用的ajax。 HTML代码:<in原创 2017-03-18 16:57:03 · 7221 阅读 · 1 评论 -
微信网页开发--仿美团、饿了么红包分享
需求这个月,公司做了一个3.8女王节的活动。当时的需求是一个水果接龙的小游戏。比如,我发起了一条接龙,然后我把这个链接分享出去,A点击这个链接就可以看见我输入的水果,然后A再分享这个链接给B,B就可以看见我输入的水果,如果A输入了,B也可以看见A的信息,我点击分享的链接,我也可以看见A和B的输入内容(前提是A和B都输入了内容)。 这个就有点像我们在使用饿了么或者美团点外面后,我们分享红包,说点了那原创 2017-03-13 15:55:19 · 8573 阅读 · 0 评论 -
微信网页开发--分享接口
流程关于流程,在上一篇中已经有图介绍: 微信文档微信JS-SDK说明文档JSSDK使用步骤首先确保已经获取了相关权限 步骤一:绑定域名先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者中心”查看对应的接口权限。 步骤二:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/op原创 2017-03-06 12:03:11 · 9641 阅读 · 0 评论 -
微信网页开发--获取微信用户信息
流程用户扫码或者直接点击链接进入我们的入口页面;进入授权登录页面,用户点击授权登录按钮;微信会自动将我么的网页授权域名后增加参数;根据微信给的code去获取当前登录的微信用户的用户信息。具体操作过程1.配置网页授权域名 这里的域名设置只能设置一个,要求就按照微信的操作就可以。由于这个域名还是公司的,所以这里都马赛克处理了。 2.配置txt路径可以访问 我的项目目录: 微原创 2017-03-06 11:27:24 · 5895 阅读 · 1 评论 -
Node.js配置支持https和http
在开这篇文字之前希望你已经在阿里云或者腾讯云上面申请了一年的免费DV证书。 且你的域名已经备案,没有备案的域名是申请不了的。我的解析也是阿里云的。 我的是阿里云的免费DV证书。怎么申请大家可以去官网看看。1.下载证书登录阿里云—>控制台—>安全(云盾)—>证书服务 由于我的服务器是阿里的,windows server 2012, IIS8的。 2.证书的安装如果只是网站的安装可以看看阿里原创 2017-03-03 10:32:03 · 3647 阅读 · 0 评论 -
Node.js批量刷CSDN博客访问量
在我的系列文章Node.js文章中的Node.js爬虫技术中介绍了爬取我的博客文章列表。 在那里我们用到了request和cheerio。这里我只需要使用request就可以批量刷CSDN博客的访问量。 之前在网上搜索了一个xx.sh(忘记了叫什么名字)的脚本。那个只能一次刷一篇文章的,而且刷新平率高了就会收到CSDN发怀疑的消息。 在使用我的这个Node.js的方法刷的时候前提是希望大家对N原创 2017-02-25 15:43:04 · 5116 阅读 · 7 评论 -
Node.js爬虫技术
什么是爬虫,可以先看看百度百科-网络爬虫或者看维基百科-网络爬虫需求我现在需要获取我的CSDN博客的所有文章标题和文章url地址。 一种方法是点开每个文章一个一个的复制。很显然这个方法不太现实,当只有几篇文章时还是可以的,一但文章多了就是体力活了。 这个时候我们就需要通过技术的手段来获取了,爬虫就是其中的一种。需要的资源前面已经写了几篇关于Node.js的。现在还是使用Node原创 2017-02-22 19:13:20 · 2458 阅读 · 1 评论 -
Express修改模板引擎
在《Mac下express的安装和新建项目》我们新建项目使用的是:express --view=ejs 项目名其中的view=ejs表明我们模板引擎是ejs。默认是jade。 但是我们要修改成html就不可以:express --view=html 项目名这是不可以的。 我们需要做的是: 在新建的express项目中自行修改,在上面我们新建的ejs模板:express --view=ejs 项原创 2017-02-17 14:13:45 · 2558 阅读 · 0 评论 -
Node.js+express+MySQL使用七牛云实现的用户头像修改
这篇是接着Node.js+express+MySQL仿美团注册登录绑定第三方登录前后端的实现写的。 在之前的系统上,我们加了一个修改用户头像的功能。准备工作1.数据库增加字段 在之前的数据库里面我们需要增加一个用户头像的字段,用于存储用户头像的url地址。alter table user add head_url text not null;修改之后的表结构如下: 2.增加一个修改数据库的原创 2017-01-25 11:25:50 · 3946 阅读 · 0 评论 -
ERROR 1130 (HY000): Host '113.57.150.82' is not allowed to connect to this MySQL server
报错的原因是我的本机不能连接远程的MySQL数据库; 解决办法: 在远程数据库那里输入: mysql -u root -p 然后输入密码,然后: GRANT ALL PRIVILEGES ON . TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 这个里的myuser是可以访问数据库的用户名; 这个里的mypas原创 2017-01-23 10:12:38 · 1631 阅读 · 0 评论 -
Node.js+express+MySQL仿美团注册登录绑定第三方登录
准备在开始做这个前,希望你已经配置好的Node,express和MySQL的开发环境。也可以参考参考文章开发环境的配置新建项目 参考Mac下express的安装和新建项目mysql模块 在package.json文件的dependencies下加入下面的代码"mysql": "latest", 最终的效果: 然后cd到项目所在的目录,在终端中执行npm install,项目就会配置m原创 2017-01-23 09:17:15 · 6541 阅读 · 1 评论 -
Node.js+express的接口适配get和post并输出json
在上一篇Node.js.express的get和post输出json 例如post请求:var dataSuccess = { status: '100', msg: '登录成功', data: { userId: '20170113', userName: 'hgdqstudio', blog: 'http://hgdqs原创 2017-01-19 15:17:00 · 7089 阅读 · 0 评论 -
Mac下MySQL的安装和配置
我的博客一、下载MySQL官网下载页面点击后进入如下页面 按图操作即可,接下来: 二、安装和配置安装按照步骤来即可。但是要记住最后的初始密码。 最后我们在电脑的系统偏好设置里面可以看见安装的MySQL 默认MySQL是启动的。 在打开之前我们需要在终端中配置一下。PATH="$PATH":/usr/local/mysql/binmysql -u root -p#输入密码#原创 2017-01-19 09:35:24 · 1188 阅读 · 0 评论