OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Node.JS循环递归复制文件夹目录及其子文件夹下的所有文件

JS学习 by ourjs key Node.JS 1504004376526 评论 (0)
在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的简单区别,以及括号的用法

JS学习 by ourjs key JavaScript 1502528052409 评论 (0)

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) 文本内容

JS学习 by kris key Node.JS 1498271878654 评论 (0)
这里介绍最新版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文本内容

JS学习 by kris key JavaScript 1497526407982 评论 (0)
想要做全文搜索引擎,则需要将word/pdf等文档内容提取出来。对于pdf有xpdf等一些开源方案。但Word文档的情况则会复杂一些。 
我们这里使用了 antiword 开源软件,来提取word2003以前版本的内容,安装同样非常简单:

apt-get install antiword

用JavaScript获取当月第一天和最后一天

JS学习 by ourjs key JavaScript 1496734243458 评论 (0)

获取当月的第一天和当月的最后一天其实还挺麻烦的,因为每个月天数可能不一样。不过借助 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);

Node.JSv8的5个新特性:支持string padding与async/await和object参数省略

JS学习 by ourjs key Node.JS 1496650697334 评论 (0)

async/await 没有第三方依赖,写法更直观,再也不用写回调嵌套了:

const fetch = require('node-fetch');

async function getUser(username) {
  const res = await fetch(`https://api.github.com/users/${username}`);
  const json = await res.json();
  return json;
}

async function start() {
  const user = await getUser('github');
  console.log(user); // prints out info about ‘github’ user on GitHub
}

start();

node.js中fs.stat里的atime,mtime,ctime,birthtime在debian下的更新规则与区别

JS学习 by kris key Node.JS 1495613887215 评论 (0)
在node.js中可以通过fs.stats命令,可以查看文件的属性,状态,修改时间等:
atime是指access time,即文件被读取或者执行的时间,修改文件是不会改变access time的。网上很多资料都声称cat、more等读取文件的命令会改变atime,这其实与系统设置有关的,一般默认不会修改。
ctime即change time文件状态改变时间,指文件的i结点被修改的时间
mtime即modify time,指文件内容被修改的时间。
birthtime即文件创建时间,很多文件系统不支持。

decodeURIComponent有个BUG,当浏览器请求地址含%+数字时,会解析错误

JS学习 by kris key JavaScript 1495605460138 评论 (1)
比如要查询字符串: 限时特惠!仅需0.5%25!


但搜索框中会出现:  "限时特惠!仅需0.5%!"

25消失了!

NodeJS的DNS使用:域名解析,MX记录查询,SPF反垃圾邮件测试

JS学习 by kris key Node.JS 1495107320794 评论 (0)

Node.js 有一个专门用于解析域名的模块dns。引入DNS 模块语法格式如下:

var dns = require("dns")

SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。

通过解析域名的SPF记录,我们可以检查某个发送邮件的IP地址是否合法:

dns.resolveTxt('cn.oncedoc.com', function() {
  console.log('txt cn.oncedoc.com')
  console.log(arguments)
})

Node.JS如何调用Chrome打开浏览器链接地址

JS学习 by kris key 开源 1494940468704 评论 (0)

在Node.JS中打开浏览器网址非常简单。

此时会使用chrome打开网址,如果没有安装则会使用默认浏览器打开。

在Node.JS中通过child_process调用即可。

var cp    = require('child_process')
cp.exec('start chrome http://www.baidu.com')

广告投放

 近期热门 - 点击最多
  1. redis、memcache和mongodb各自的优缺点是什么,怎么选择呢?
  2. Node.JS 8.x和9.x新特性:N-API,NPM5,ERROR CODE
  3. 移动端开发框架哪个好?jQuery/Vue/AngularJS有哪些区别和优缺点?
  4. 比特币最近为何会暴跌?大资金如何靠做空比特币获利
  5. 红衣教主周鸿祎会不会成为中国首富
  6. Node.JS中UDP打洞穿透内网路由,架设内网服务器技术详解及源码
  7. OnceAir顽石企业私有云网盘使用介绍
  8. 马化腾创办腾讯的第一桶金是怎么来的:炒股10万炒到70万
  9. Node.JS读取中文TXT编码文件显示乱码问题解决方案
  10. node.js用fs.rename强制重命名或移动文件夹
  11. AirJD-简单好用的免费建站工具

  全端社区 - 最新回复
  1. Essential Studio for JavaScript发布2017 v4版本,添加Essential JS 2工具包
  2. Kendo UI API中文介绍一:UI
  3. 使用MyEclipse将HTML5移动项目迁移到PhoneGap(二)
  4. 快速掌握Angular Kendo UI的7大秘诀
  5. Node.JS如何查看本地MAC/IP地址、计算cpu使用率和内存容量
  6. DevExpress v17.2新版亮点—ASP.NET篇(一)
  7. 邮件客户端WebMail Pro更新至v7.7.7丨附下载
  8. 集成的HTTP嗅探器HttpWatch更新至v11.1.19丨附下载
  9. Kendo UI ASP.NET MVC使用教学视频集锦(高清在线观看)
  10. 使用MyEclipse将HTML5移动项目迁移到PhoneGap(一)

  开源的 OurJS
Demo (EN), Demo (CN), Github
  关注我们 RSS

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号

加载中...