Simple is Happiness
Less is more
JS学习
Node.JS读取中文TXT编码文件显示乱码问题解决方案
by ourjs keys JS学习 Node.JS 1511612303462
Windows下默认的编码格式是ASNI,其实这并不是真正的编码格式,但Node.JS默认的编码、解码则是目前通用的UTF-8。因此在读取Windows默认的TXT文件时会显示乱。
可以用iconv-lite来用gbk解码:
var fs    = require('fs')
var iconv = require('iconv-lite')

fs.readFile('readme.txt', function(err, data) {
  console.log(iconv.decode(data, 'gbk'))
})
Node.JS与USB接口通信:检测U盘/移动硬盘插拔事件和发送接数据
by ourjs keys JS学习 开源 1510973843267
在做嵌入式开发时,我们经常需要能够侦听USB端口的热插拔事件。目前node.js本身是不提供这类系统事件的接口的。不过已经有人用node.js和c/c++来侦听USB的系统事件,并将其打包进了NPM。
使用

var usb = require('usb')

usb.on('attach', function(device) { 
});
usb.on('detach', function(device) { 
});
NodeJS动态传参特性:不定个数参数的省略,默认值与解构
by ourjs keys JS学习 Node.JS 1509950779523
在Javascript中普遍模式是将一个对象作为配置可选项,以前,这些选项得手工从对象中分解出来然后分配给相应变量。

function doTask (who, options) {
	options = options || ''

	var name = options.name
	var time = options.time
}
现在只需要一行即可:

function doTask (who, options = {}) {
	var { name, time } = options
}
从 Node 到 Go:一个粗略的比较—GO平均性能比JavaScript快十几倍
by ourjs keys JS学习 分享 1507095957960

虽然我在大学时期和刚刚工作的一些时间在使用更严谨的编译语言,比如 C++ 和 C#,而后来我开始使用 JavaScript。我很喜欢它的自由和灵活,但是我最近开始怀念静态和结构化的语言,因为当时有一个同事让我对 Go 语言产生了兴趣。

我从写 JavaScript 到写 Go,我发现两种语言有很多相似之处。两者学习起来都很快并且易于上手,都具有充满表现力的语法,并且在开发者社区中都有很多工作机会。没有完美的编程语言,所以你应该总是选择一个适合手头项目的语言。在这篇文章中,我将要说明这两种语言深层次上的关键区别,希望能鼓励没有用过 Go 语言的用户有机会使用 Go 。

Node.JS中如何快速扫描端口并发现局域网内的Web服务器地址(80)
by ourjs keys JS学习 Node.JS 1505207561228
在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式。即使用广播和扫描,使用广播发出的消息有时会被路由器屏蔽,所以并不可靠。
使用node.js中的net模块,可以直接尝试向目录主机的某个端口进行连接,如果能建立连接,则说明该地址存在服务器。

var socket = new Socket()
socket.connect(port, host)
socket.on('connect', function() {
  //找到port 和 host 地址
})
Node.JS循环递归复制文件夹目录及其子文件夹下的所有文件
by ourjs keys JS学习 Node.JS 1504000543256
在Node.js中,要实现目录文件夹的循环递归复制也非常简单,使用fs模块即可,仅需几行,而且性能也不错,我们先来实现文件的复制:

var copyFile = function(srcPath, tarPath, cb) {
  var rs = fs.createReadStream(srcPath)
  rs.on('error', function(err) {
    if (err) {
      console.log('read error', srcPath)
    }
    cb && cb(err)
  })

  var ws = fs.createWriteStream(tarPath)
  ws.on('error', function(err) {
    if (err) {
      console.log('write error', tarPath)
    }
    cb && cb(err)
  })
  ws.on('close', function(ex) {
    cb && cb(ex)
  })

  rs.pipe(ws)
}

正则中test、exec、match的简单区别,以及括号的用法
by ourjs keys JS学习 JavaScript 1502527964778

1、当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;

2、当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组;

3、当正则表达式有子表示时,并且定义为非全局匹配,exec和match执行的结果是一样如上边的第5种情况;

4、当正则表达式有子表示时,并且定义为全局匹配,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容,如上第6种情况;

也就说,exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同

node.js使用unzip解压zip包指定文件,提取 word/excel (docx/pptx/xlsx) 文本内容
by kris keys JS学习 Node.JS 1498271495930
这里介绍最新版office文档内容提取的一些简单方法。对于docx/pptx/xlsx文档来说,其本身就是一些zip文件,只需要在node.js先将其解压,再解析其中存放内容的xml即可,如word中的: text.docx\word\document.xml。
我们可以直接使用 unzip 模块,来解压。使用前先安装 unzip。
npm install unzip
Linux下用node.js提取Word(doc/docx)/PDF文本内容
by kris keys JS学习 JavaScript 1497519067670
想要做全文搜索引擎,则需要将word/pdf等文档内容提取出来。对于pdf有xpdf等一些开源方案。但Word文档的情况则会复杂一些。 
我们这里使用了 antiword 开源软件,来提取word2003以前版本的内容,安装同样非常简单:

apt-get install antiword
用JavaScript获取当月第一天和最后一天
by ourjs keys JS学习 JavaScript 1496733869224

获取当月的第一天和当月的最后一天其实还挺麻烦的,因为每个月天数可能不一样。不过借助 Date 对象则很容易实现:

当月第一天和最后一天

var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);

 近期热门 - 点击最多
  1. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  2. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  3. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  4. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码
  5. node.js使用TensorFlow入门教程一:简介及工作原理环境安装及初始化
  6. node.js用saml2连接Identity Provider服务器完成Azure AD/Active Directory域帐号身份认证
  7. node.js中用typescript连接mongodb数据并设置断开后自动重启连接
  8. git 将本地仓库关连并push远程
  9. 在Windows10上创建node.js开机启动脚本服务Task Scheduler failed to start: Error Value: 2147943711.
  10. Windows和MacOS获取当前Active Directory域的用户名和AD服务器域名

  全端社区 - 最新回复
  1. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  2. 如何用JavaScript获取某个元素copy selector的CSS选择器
  3. 青否数字人5.0上线,支持真人接管实时驱动!
  4. 遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!
  5. 比fs.watch更加优秀的Chokidar文件变化检测库
  6. HTML页面嵌入部分使用Vue3,在jQuery应用中用类似Vue2使用Vue3
  7. 克隆自己的数字人形象需要几步?
  8. Node.JS中Fetch/Axios连接Strapi服务器端localhost,Next.JS后端SSR请求返回connect ECONNREFUSED,但客户端CSR正常
  9. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  10. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA