自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

丰云 之 薪火

技术群225042337

  • 博客(122)
  • 资源 (3)
  • 问答 (5)
  • 收藏
  • 关注

原创 一个nodejs老项目的隐秘错误

这几天,一个老项目负责人找我,说原先服务器坏了,换了一天服务器,环境都是复制的,但是nodejs开发的webapi运行无异常,单页面提交就报错。反复思考后,考虑到整个环境是复制的,但复制的过程,未必和我想的一样,未必所有的地方都是完整的或一致的。于是先更新npm到最新版,然后更新镜像源为淘宝源,再次运行npm update命令,这次顺利更新了插件,问题也一并得到了解决了。这里总结一下,nodejs项目,如果没有打包成可执行文件,移置到新环境,一定要先更新nodejs环境,尤其是插件。

2023-06-09 13:42:26 139

原创 js/nodejs靠谱的同步方法,确保任务之间平滑承接不冲突

比promise靠谱的同步方法,确保同步事件之间前后承接,顺序执行,不会因为并行而导致资源冲突。

2021-12-29 09:27:22 720

原创 微信小程序之各类文件下载保存到本地

微信小程序下载非图片类文件,并保存到手机本地的方简单可行的非插件方法

2021-12-28 09:23:10 11234 5

原创 nodejs版微信支付之JSAPI统一下单接口调用

公司项目要用到微信支付的jsapi统一下单接口调用,由于官方缺乏nodejs版的代码范例,而网上查到的也是五花八门的代码,却没有一个能用,也没有一个能讲清楚的,害得我花了好大的劲,各方求证并积极联系微信支付的技术支持,试了N种方法、手段,终于调通了,现在无偿提供给大家参考:var xmlreader = require("xmlreader");var request = require('request');var crypto = require('crypto');var pa

2021-08-23 16:23:31 1146

原创 nodejs后端接入阿里云《天眼数聚》银行卡四要素验证

前提是需要在阿里云服务台购买该服务哦。不废话了,上代码:// params.appid //阿里云上注册你的应用程序时得到的编号// params.appCode //阿里云上注册你的应用程序时得到的编码// params.name //银行卡绑定的姓名// params.bankCard //银行卡号码// params.IDCard //银行卡绑定的身份证号码// params.phone //银行卡绑定的号码// params.nonce_

2021-08-20 20:50:36 328

原创 nodejs调用阿里云盾身份证二要素验证

这几天做阿里云云接口的身份证认证和银行卡认证,搞得头大,一个简单的事搞了很多麻烦,现在把正确的nodejs服务端代码记录下来,以备后用,以供参考。前提是要在阿里云服务台上购买该服务哦,直接上代码,不啰嗦了://params.userID //阿里云账号编码//params.verifyKey //阿里云账号=》风险识别=》接入管理=》风险认证配置//params.appID //阿里云上注册你的应用程序时得到的编号//param...

2021-08-20 20:25:57 581

原创 js控件封装之tree

今天重新整理以前封装的树结构控件,用弹性布局替代了宽度计算,支持实时响应宽度改变,并且添加了事件回调等配置项,同时修复了一些遗留的bug<!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>test</title> <script type=

2021-03-16 15:44:34 402

原创 封装的页面分割控件

最近项目需要,把以前封装的页面分割控件又重写完善了一遍,支持参数定义分割条的样式,是否启用拖动分割、是否启用点击开闭、缩放时是按比例缩放还是按宽度缩放等等其他功能大家各自挖掘吧,上代码:<!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>test</tit

2021-03-15 11:46:18 117

原创 nodejs启动其他程序的封装

有时候因为业务的需要,我们需要在代码里启动外部其他的可执行程序,怎么做呢?下面就是我封装的一个启动程序和杀死指定程序进程的方法,代码如下:var cprocess = require('child_process');module.exports = (function () { return { exec: function (fileName, filePath, title) { cprocess.execFile(fileNam

2020-11-06 16:09:10 1341

原创 nodejs项目如何把console.log()的内容自动保存到指定文件夹中

项目开发中,不论是处于调试目的,还是日志留存目的,我们经常都会用到console.log()方法输出调试信息,有时候为了分析过程数据,我们希望能把这些调试信息留存下来,保存到指定的文件里去,怎么办呢?这里介绍一个简单的方法:console.log = function () { var time = tools.dateFormat(new Date(), 'yyyy-MM-dd_HH:mm:ss'); var foldName = time.substr(0, 13); i

2020-11-06 16:00:08 3664

原创 html转base64图片的简单封装

项目要抽取编辑界面的封面图,所以需要封装一个html转图片的前端js方法。参考网上的文章,花了两小时调试完毕,现记录下来,以备后用:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>div to img demo</title> <script type="text/javascript" src="../js/jquery-3.4.1.js"

2020-09-08 14:20:31 771

原创 nodejs连接redis数据库的简单封装

因项目用到而写,先摘录下来,以备参考:const fs = require('fs')const path = require('path')const redis = require("redis");const basePath = path.resolve('./')/* * 注意:如果redis-server与nodejs客户端都在本地,下列可写成 * client = _redis.createClient();否则要对括号内容进行更改 */c

2020-06-16 14:52:42 516

原创 nodejs使用net组件采集基于tcp协议的设备信息

因项目需要,写了这些代码,现摘录下来,以备参考:const net = require('net')const tools = require('./tools')//server 代码let tcpServer = net.createServer((conn) => { conn.setEncoding('utf-8'); conn.on('close',() => { console.log('离线') }) conn.on('end',(

2020-06-16 14:41:50 355

原创 nodejs环境下的图片压缩、base64转换等

项目开发常用方法,记录一下,以备参考:constfs=require("fs");constimages=require("images");constcrypto=require("crypto"); /***图片压缩*@param{*}srcPath原图片路径*@param{*}outPath新图片保存路径*@param{*}width新图片像...

2020-06-16 14:19:50 1154 1

原创 网站报403 - Forbidden: Access is denied的处理

这段时间,维护几个网站服务器,其中一个asp.net mvc网站,只要一更新,访问就会报错:403 - Forbidden: Access is denied.You do not have permission to view this directory or page using the credentials that you supplied.网上查了N个小时的资料,各种说法...

2020-04-07 14:40:55 7778

原创 一个简单js代码的出错过程

论坛里有同学问了一个比较基础的js数组处理,就是在一个乱序且有重复值的数组中,找到最大的三个值。在回答这个问题过程中,因为没有实际测试,我连续犯了几个低级错误,现在记录下来,给自己一个警醒.第一次回答的代码:function getMax(list, num){ var result = []; list.sort().reverse().foreach((p)=>...

2019-12-18 10:13:20 150

原创 奇葩的数据库设计,逼得我不得不写这样的sql语句

一个项目的数据库设计很奇葩,用户信息表里有公司编号和角色编号,如果身兼多职,roleID就追加,用逗号分隔。。。。上传文件一律进file表,头像上传也不例外,然后,file表有个关联字段,保存所有者的编号。。。。现在要取公司员工信息,用orm框架写太麻烦,就改用sql语句取,代码如下:SELECT p.xGUID AS id ,p.Name AS ...

2019-11-25 15:39:54 257

原创 nodejs + express实现websocket即时通讯的最简应用

现在很多项目都需要内嵌一个简单的即时通讯模块,做用户之间的快速沟通,我们昨天也实现了一个,用的socket.io这个插件,可以去npm网站下载或直接npm安装。现在把最简配置贴出来,以备参考:首先是服务端的route.jsconst express = require('express')const app = express()const server = require('...

2019-11-14 09:24:40 2799

原创 电子商务系统订单一般流程与状态的设计

最近全新做一个电子商务系统,关于订单与售后服务的各种状态显示问题,项目组吵翻了,没办法,不得不规划一个订单的流程与状态关系,现在摘录下来,以备参考:本流程算不上完整,有些过程没有写进去,主要是考虑很多操作都是线下操作,线上没必要搞太复杂,目前暂时可以应付项目需要。...

2019-11-12 14:23:18 1811 3

原创 sequelize 连接sql server服务的简单封装

最近的项目,用nodejs做的webapi,连接sql server数据库用的sequelize框架,现在把我自己简单封装的sequelize服务记录下来,以备参考:sql.jsconst Sequelize = require('sequelize')const fs = require('fs')const path = require('path')const basePa...

2019-10-11 13:22:30 2443

原创 原生js复制拖拽的图片到目的地的方法

本来看到这个问题,以为很简单,实际做的过程中,发现远比想象的困难,因为图片在拖拽的时候,鼠标脱离了当前dom,不响应常规的鼠标事件。后来通过查资料,发现js提供了拖拽的事件方法。现在把简单实现的方法整理如下,以备参考:<!DOCTYPE html /><html><head> <title>drag image</titl...

2019-07-11 16:57:34 1734 1

原创 关于解决问题的一点思考

想起一个经典故事,说肥皂生产厂,因为包装流水线的问题,经常有空盒子进了包装箱,导致信誉受损。一个大厂的厂长,请了一个博士,牵头组建研发团队,花了三个月,搞出一套红外检测设备,成本花了好几百万。。。。另一个小厂,老板喊来车间主任:“我给你三天时间,你必须给我解决这个问题”车间主任喊来线长:“给你两天时间,必须解决这个问题”,线长头大,冥思苦相,最后喊来一个工人,让他去市场上买了几台大功率电风...

2019-04-19 15:20:06 277

原创 自定义的一个用于显示特定日期的日历控件

自己写的某项目里用到的一个例子,记录下来,以备参考//控件封装代码var tmpCalendar = { config: { value: null, fullMonth: ['January', 'February', 'March', 'April', 'May', 'June', 'July',...

2019-04-19 09:41:10 826

原创 风火牙疼,紧急止痛、快速治疗的真实历程

前几天牙疼,痛不欲生,无可抵挡,恨不得把牙齿全部敲掉。。。。想想程序员因为熬夜和生活习惯的原因,很多人都容易上火,得这个病的人估计也不少,所以决定把我个人的真实治疗过程记录下来,给大家一个参考。我是四月四号早上起床,感觉有一个颗牙齿有点松动疼痛,没太在意。然而上班后,疼痛开始蔓延加剧。到了中午,已经难以忍受,半边脸都疼了,到了下班的时候,半个脑袋都疼了。回家后就去药店买了甲硝唑和清火片,按说明...

2019-04-08 13:58:54 5316 1

原创 nodejs后台request接收post上传的文件和数据的方法

nodejs的request没有内置分析并整理post上传的数据与文件的的方法,打开的是带有分隔标志的原始数据串,需要额外提取。虽然我们可以通过自己写代码,从header里面获取分隔标志,再切割原始数据进行提取,但这样显得很不优雅。并且已经有非常专业的插件formidable可以干这个活。下面就贴出用该插件提取文件与数据的基本代码:var fs = require('fs');var...

2019-03-25 13:32:54 11225

原创 关于网站csp(Content Security Policy)以及过滤服务器敏感信息的设置问题

最近一个客户通过专业工具扫描网站,发现了几个低等级的安全问题,其中有csp安全设置缺乏,http请求表头返回敏感信息未处理,跨站攻击防范未处理等,要求我们予以修复。说实话,这类事情,国内很多人都没听说过,因为没人重视,也可能是有些人刻意为之的缘故吧,否则那些广告联盟的饭就不好吃了。。。。废话少说,现在就把处理的过程简单记录下来:首先是在网站配置文件里添加如下节点,用于csp设置,下面的...

2019-02-13 13:55:59 4138 5

原创 一个关于m个元素的数组,取n个之和等于o的js版组合算法

    function choose(arr, size, total) {        var allResult = [];        (function (arr, size, result, tal) {            var arrLen = arr.length;            if (size &lt; arrLen) {             ...

2019-01-15 13:18:18 672

原创 webapi参数对象为空的的处理

最近做一个小即时通讯程序,考虑到服务资源和实际使用情况,使用的心跳包实现,结果测试时,发现发送消息到webapi后,消息对象始终为空,仔细检查了各个环节,所有问题都排查了一遍,还是没有接收到提交的消息数据。后来反复试验之后,发现了问题:原来接收对象里的属性全都是不可空的,而整形、guid类型的属性,也是不可空的,而每次不是所有不可空的字段属性都提交了,导致对象无法初始化!最后把不确定会...

2018-12-12 14:33:20 1828

原创 sql server 常用的事务提交/回滚写法

记录备用BEGIN TRANBEGIN TRY -- do something as insert or update or delete... IF(@@TRANCOUNT&gt;0) --全局变量,事务开启值则+1,用来判断是否开启事务 COMMIT TRAN;END TRYBEGIN CATCH SEL...

2018-12-03 09:53:37 6335

原创 一段专为大数据量table写的sql,包含获取表结构并返回的功能

当报表需要一次获取所有数据并统计时,采用纯json格式传输数据代价太大,所以写了这个sql语句: DECLARE @Type VARCHAR(100); DECLARE @Keywords VARCHAR(100); DECLARE @PageSize INT; DECLARE @PageIndex INT; SET @Type =...

2018-11-23 11:06:41 260

原创 通用sql批处理执行过程

一个通用的执行sql的过程,用于接收参数,找到数据库里的存储的SQL语句,并拼接参数并执行的过程,能解决普通项目中绝大部分的业务,留存备用CREATE PROC [dbo].[MY_EXEC_SQL]@Code NVARCHAR(100),@Param NVARCHAR(MAX)ASBEGIN DECLARE @id INT; DECLARE @cnt I...

2018-11-16 15:37:21 612

原创 自己写的一个sql server中经常需要用到的split用户函数

CREATE FUNCTION SYS_SPLIT(@srcStr NVARCHAR(MAX),@splitStr NVARCHAR(100)) RETURNS @tmp TABLE( id INT IDENTITY PRIMARY KEY, content NVARCHAR(MAX) ) AS BE...

2018-11-08 14:13:05 338

原创 一段可循环输入数字,经过计算后输出的dos批处理代码,留存参考

技术群里有新人问这个题目,无聊写了这个dos批处理。因为十几年没写dos了,都忘记了,写这几行代码花了半个小时,所以打算记录下来,留存备用@echo off:startset /p memberNumber=请输入会员卡号: set /p amount=请输入购物金额: set /p integral=请输入原有积分: set /a num=%memberNumber:~-3,...

2018-10-25 09:16:38 419

原创 简单js购物车逻辑代码

项目准备用而没有用到的代码,留存备用/* 购物车相关逻辑 */function GetMallUserInfo() { var mui = $.cookie("MallUserInfo"); return mui ? JSON.parse(mui) : null;}function SetMallUserInfo(mui) { $.cookie('MallUserIn...

2018-07-12 17:22:05 2877 1

原创 js键盘事件编码

项目经常会用到键盘快捷方式,需要使用键盘编码,下面根据网上找到的资料,整理如下:&lt;script type="text/javascript"&gt; document.onkeydown = function(e){ e = e || window.event || arguments.callee.caller.arguments[0]; ...

2018-07-02 14:32:06 1929

原创 asp.net mvc 过滤器基本方法

 asp.net mvc里的过滤器是个非常好用的东西,用来做登录和权限验证是最常规的用法,里面有些具体实现方法,查找资料比较困难,现在把一些常用到的记录一下,供大家参考: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)...

2018-06-27 10:40:47 384

原创 video播放视频时配置字幕的实现方法

项目里有很多视频资料,现在客户需要给给这些视频资料添加字幕解说。网上查了不少资料,终于简单实现了这个效果。/* 直接给字幕标签加样式是无效的,必须以下面的方法给样式。*//* 由于google chrome和firefox的字幕默认样式是黑色背景,效果难看,因此需要样式调整 */video::cue{ background-color:transparent; col...

2018-06-26 10:05:13 7430 3

原创 js获取图片base64格式串的方法

论坛里有同学提出了这个问题,尝试了一下,中间走了一些弯路,最终实现方法很简单,还是记录下来,以备后用:&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;Blob To Base64&lt;/title&gt; &lt;meta http-equiv="Content-type" content="text

2018-06-19 17:28:52 7515 2

原创 Asp.net MVC中,无法对 null 引用执行运行时绑定,引发的故事和思考

今天下午,有个项目里的一个页面有点小改动,提交后,测试发现了一个错误:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 null 引用执行运行时绑定一个奇怪的错误,为什么这么说呢?&lt;div&gt;@if (!Model.abcdefg.HasValue) { ... }&lt;/div&gt;很普通的代码,按理说不...

2018-06-12 15:15:09 10220

原创 css控制图文混排、图文自适应容器显示的效果

闲来无聊,写了一个效果,留存参考:&lt;!DOCTYPE html /&gt;&lt;html&gt;&lt;head&gt; &lt;meta name="viewport" content="width=device-width" /&gt; &lt;title&gt;图文混排自适应&lt;/title&gt; &lt;script

2018-06-11 15:44:31 1541

pdfjs资源包

用于pdf文件的前端展示预览,纯js代码,基于解析pdf文件流的底层做法,因此兼容性超强。适合各种设备的html页面

2018-07-09

ffmpeg-win64 资源包

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec

2018-01-18

html2canvas.js

一个可把html转换成canvas图形的js工具,用用于各种页面打印或导出pdf、快照等

2018-01-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除