OurJS


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

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


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

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

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


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

kris

node.js使用unzip解压zip包指定文件,提取 word/excel (docx/pptx/xlsx) 文本内容

Node.JS by kris 1498271878654
这里介绍最新版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文本内容

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

apt-get install antiword

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

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

Phantom.js维护者Slobodin退出,著名自动化测试与智能爬虫框架前景不明

分享 by kris 1493528313576
PhantomJS是一个基于WebKit的服务器端JavaScript API,它无需浏览器的支持即可实现对Web的支持,是最早的服务器端Web框架之一。系统占用极小,多用于自动化测试、智能爬虫、网络监控、网站自动截图等。PhantomJS的启动非常简单:

var page = require('webpage').create();
var url = 'http://phantomjs.org/';
page.open(url, function (status) {
  //Page is loaded!
  phantom.exit();
});

不过随着其他基于Node.JS的Web桌面程序框架 electronnode-webkit(nw) 的出现,PhantomJS的热度出现下降。最近Phantom.js的主要维护者宣布退出。项目前景不明。

Node.JS用Socket实现FTP Server服务器和Client客户端

Node.JS by kris 1493294512603

FTP协议其实就是主机和服务通过Socket进行固定格式的通信过程,当某客户端连接到FTP 服务器后,客户端发送指令:

<指令> [参数] <命令结束符:"\r\n"> 

服务会按以下格式返回:

<状态码> [参数或说明] <命令结束符:"\r\n"> 

例如以下是FileZilla FTP客户端与服务器通信的过程:

响应: 220-FileZilla Server version 0.9.43 beta
响应: 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
响应: 220 Please visit http://sourceforge.net/projects/filezilla/
命令: AUTH TLS
响应: 502 SSL/TLS authentication not allowed
命令: AUTH SSL
响应: 502 SSL/TLS authentication not allowed
命令: USER newghost
响应: 331 Password required for newghost
命令: PASS **************
响应: 230 Logged on

NodeJS连接Redis:在(Raspberry Pi)树莓派上安装Redis并设置开机自动启动服务

分享 by kris 1479883084260
Redis是一个超精简的基于内存的键值对数据库(key-value),官方只提供Linux版本,Windows版本(64位)由微软非官方提供,其编译后仅有1MB左右。实现非常精简,比如并没有传统数据库中库、表的概念,你并不能设置数据库/表的名字,仅能通过序号选择存放到第几个数据库,使用<schema:hash>的键值来表示存放到什么表里(如user:001)。不过因为其基于内存且实现简单,Redis有着非常好的性能。

iPad/iPhone默认input按钮的disabled CSS样式不工作

前端 by kris 1456196548771
最近碰到一个问题,需要复写iPad/iPhone上面的disabled元素的样式,如下图所示

Array及String的lastIndexOf函数用法及其IE8实现,及为什么要尽量避免使用for in

JavaScript by kris 1454642906521
Array.prototype.lastIndexOf 和 String.prototype.lastIndexOf 是非常的实用一个函数,不过很多人不知道它其实可以传递两个参数,第二个参数决定了搜索的起始位置:

// Create an array.
var ar = ["ab", "cd", "ef", "ab", "cd"];

// 找到最后一个CD的位置
document.write(ar.lastIndexOf("cd") + "<br/>");
// 输出: 4

// 从正数第二个位置,搜索倒数第一个CD的位置
document.write(ar.lastIndexOf("cd", 2) + "<br/>");
// 输出: 1

// 从倒数第三个搜索最后一个ab的位置
document.write(ar.lastIndexOf("ab", -3) + "<br/>");
// 输出: 0

用HTML5原生实现拖放或排序

JavaScript by kris 1454318337952
拖放是一种很常见的功能,现在这个功能已经成为Html5标准的一部分。通过html5只需要简单几行代码即可实现拖放,比如下面这个例子,你可以将此图片上下拖放。

如何用CSS将select/option文本居中或居右对齐

JavaScript by kris 1453776531660
目前在select元素中你使用css: text-align, 你会发现根本不起作用。

select { text-align: right }
option { text-align: right }

似乎在所有基于webkit的浏览器没有对select实现text-align这个CSS属性。


分享到