Tag Archives: nodejs

nodejs抓取网页邮箱

用到的正则匹配还是不太准确,也并未做到在全网去搜索邮箱地址,需要先限定位置,再去匹配,总之还有很多需要处理的问题,废话不多说了,直接上代码吧,以贴吧为例(其中用到的有些工具包需要自行安装):

nodejs readfile 字符串显示与IE8下new Date()为NAN

今天遇到的两个问题,解决方式记录一下: 1、nodejs readfile 以字符串显示(默认以buffer显示),设置打开字符集为utf-8,例子如下: 2、IE8下new Date(‘2015-04-14’)居然返回NAN,查了之后,貌似IE8不支持’2015-04-14’的传入格式,好吧,知道原因正则替换一下就好了(若是可以直接输入控制,可以直接改成new Date(‘2015/04/14’)),具体代码如下:

nodejs+busboy实现文件上传

环境,安装nodejs以及busboy,参考文件:https://github.com/mscdex/busboy 具体代码,html代码部分,文件名upload.html 对应的js代码: 怎么用呢,node 对应文件,然后浏览器输入127.0.0.1:8000,然后上传文件就可以了。PS:下载目录需要事先建好,否则会报错——暂时没有发现可以配置自动创建的参数…… 学了nodejs也有一段时间了,发现很多东西知道怎么用了,但对于其中的深层次东西很迷糊,准备入手一本书系统的学习下了!

用nodejs本地搭建可访问静态资源的http服务

先说一下应用场景,开发时自己写的静态页面需要调用ajax,但ajax必须依赖http和https(这里指的是自己依赖本地假数据调试,若是你在本地,调的确实服务器上的地址,这个问题是不用考虑的—前提是跨域问题已解决)。之前我是用xampp搭建的服务,只调用它的http服务,最近在学习nodejs,就像何不自己弄一个呢,大概也就几行代码的事情,于是就动手了,代码如下: 学过node的人,对于怎么用这段代码应该都了解,没学的最好学习下——命令行:node app.js ,app.js是上述代码的文件名(当前的代码,要求app.js和代码在同一目录下); 目前是依赖express实现的,下面是用纯nodejs实现的版本,思路有点不一样,不知道有没有和express思路相同的实现方案,若是您知道,欢迎告知,在此多谢了!

nodejs来搭建代理服务

对于代理服务具体是何解释,我不太清楚,今天看nodejs官方文档时,看到NDS的API时,想知道DNS API的具体用法,结果搜到了有人用nodejs搭建代理服务器的文章,就跟着试了一下,代码如下,需要npm安装http-proxy(npm install-g http-proxy),这里我是全局安装: 1314端口服务的代码如下,nodejs官网主页的例子 两个都运行起来,访问127.0.0.1,会发现输出的是1314端口的内容。 参考文章:http://blog.csdn.net/zhangxin09/article/details/37663091

nodejs自动发送邮件

nodejs里面可以玩的东西真多啊,最近又发现了一个,可以自动发送邮件的,github地址如下:https://github.com/andris9/Nodemailer demo代码如下,具体参数见github的API

nodejs抓取页面小试

用nodejs写的抓取页面代码,很简单,很久之前写过一个爬图片的…… 代码待优化部分,一是有些页面抓取回来的是乱码(优先级较高),另外一个是保存格式,现在保存到txt里没有格式可言 附上代码(改自alsotang的nodejs教程):

看了一道nodejs的测试题,我也是醉了

貌似和nodejs也没有太大关系,把过程写下来…… 题目: 将其中的base64解码,得到一个网址:https://raw.githubusercontent.com/wdongxv/jstest/master/test.js 访问网址,得到一串压缩过的代码,拷贝到本地(test.js),格式化下,node test.js 然后又得到了另外的代码: 直接得到的代码 node test.js后得到的代码: 看到console.log了,看下结果,setTimeout的闭包里引用的i和i2分别是4和3,3个不同的闭包3次相加 value1 = 12 value2 = 9, i3 是每次循环是i的值分别是 123,so,value3=6 等等,说好的联系方式呢?我是不是忽略了什么?终于,找到了答案(只是不是我找到的),test.js里面,有这么几个单词:

grunt学习小记

按照昨天预想的,将grunt看了一下,对于grunt有了一个了解了,下面分享一个grunt下使用uglify的示例吧,其他人的代码(原网址),代码如下(注意代码中的目录结构,推荐去原文看下): 最后,说下参考资料: http://gruntjs.com/ (英文) http://www.gruntjs.org/ (中文) https://github.com/gruntjs/grunt-contrib-uglify (github)

nodejs利用imagemin压缩图片

再来一个压缩图片的,用nodejs来执行的……不知是不是我使用的有问题,感觉压缩率不高……(代码switch处写的不够好,有好建议的望告知下) 附上imagemin的github地址:https://github.com/imagemin/imagemin 直接上代码,代码写的不好,欢迎指导! 自己鼓捣完了,明天开始看grunt…… 最后附上一个今天帮同事看的一个问题:IOS webview长按文本区域显示文字放大镜,选择指定区域的网页内容,包括文字和图片,执行复制,粘贴等的链接文章,点击这里,简单点来说就是给body或指定元素设置-webkit-touch-callout:none ;和-webkit-user-select:none ;这两个属性。

nodejs调用uglify-js和clean-css压缩文件

昨天弄了一个批处理的,没将uglify和clean-css合并在一起,今天来一个用nodejs写的,本人nodejs属于自学阶段,写的不好,请见谅! 环境同样需要先全局安装nodejs、uglify-js、clean-css,然后添加下NODE_PATH=”你的node_modules所在的目录”的环境变量(windows下)。 最后奉上代码: 使用方法,命令行输入node compress.js ,compress.js为拷贝上述代码后,新建的js文件名,当然你也可以用其他的名字,当然,执行命令前,你先要到文件所在的目录下。

uglify和cleancss的bat文件

网上找了一个uglify的批处理文件,就仿照着写了一个cleancss的(其实就是简单地替换了下关键位置),下面是批处理文件的代码: 备注:需要先安装node,然后在用npm全局安装uglify-js和cleanCss。 uglify的批处理文件(JSFOLDER是需要压缩的文件目录,替换成自己的,cleancss同理) cleanCss的批处理文件 将上面的代码拷入到一个新建的txt文件,然后将后缀名修改为bat就是批处理文件了,双击就可以运行了。 原本想要把这两个写在一个批处理文件上,结果发现了一个问题,for循环直接退出了,也就是说echo done!还有后面的pause & exit 根本没有运行。这直接造成无法在一个for后面再加一个for…… 查了下,造成上面问题的原因和for没有本身关系,因为去掉uglifyjs %%~fa -m -o %%~fa(cleancss -o %%~fa %%~fa)后,就是完全正常的…… 至于具体是什么原因造成的,暂时还不清楚,若是你知道,欢迎告知,在此多谢了!

官网下载下来的zepto文件报tap未定义错误?

前几天,指鹤开始用zepto文件,但非常简单的几行代码居然报tap未定义的错误? 搜了搜发现原来是zepto官网默认的组件只有zepto event ajax form ie这五个,其余的全部都需要自己安装。注意touch并不在默认的里面。 那么怎么安装呢?这里存在一个问题了,首先你需要已安装nodejs了,nodejs在Windows下很好安装,官网下载后直接安装便可,Ubuntu下需要输入对应的命令行,理论上更加的好安装,但指鹤却遇到过一些问题,这里就不提了,因为我也并未完全弄清楚(大概是由于有些Linux版本node——这里指的是命令,默认安装完后为nodejs,而我创建软连接却一直无效,这其中也许也和指鹤用的是Ubuntu14.0.4的测试版有关,2014.11.15号左右测试的) 下面开始进入正题,安装好nodejs后(此处以windows环境为例) 1、github上面下载最新的zeptojs的包,地址:https://github.com/madrobby/zepto,ctrl+r,输入cmd,打开dos窗口,cd到zepto目录下,打开make文件,采用记事本打开就可以,但还是推荐用比较专业一点的编辑器,以免造成标点符号写成中文的看不出来。 2、在make文件下,指鹤这里是42行的位置,找到 3.上面touch是指鹤刚刚加上去的,若是你只想要加入touch,加上touch后运行,npm install(这个命令其实在cd到zepto目录时输入也可以,它是安装package.json下的npm包),然后输入npm run-script dist。 4.输入完命令,看到完成的提示信息后,你可以在dist目录下找到zepto.min.js和zepto.js,也就是一个压缩的一个未压缩的,根据需求选择一个引入工程便可。 至此,所有操作完成,若是你觉得上面的操作麻烦,可选择直接从这里下载,包含压缩版以及未压缩版,下载地址:http://pan.baidu.com/s/1dDixJ5R

ubuntu手动安装node

不知道为什么,指鹤采用sudo apt-get install node一直不成功,也就是node -v 一直未有反映,加了对应的软链接后仍旧无效……(这里可能是指鹤哪一步走错了,但具体是哪一步还不清楚) 命令行安装不成功,指鹤就找了下手动安装,找到了这么一篇文章,文章中讲了怎么删除原有的node,然后再手动安装node,点击这里。 指鹤将其中手动安装node的部分copy了过来,如下: 找到nodejs的官方发布下载:https://github.com/joyent/node 在ubuntu中,先安装git ~ sudo apt-get install git 然后,从github下载nodejs源代码 ~ git clone git://github.com/joyent/node.git Cloning into ‘node’… remote: Counting objects: 100200, done. remote: Compressing objects: 100% (28074/28074), done. remote: Total 100200 (delta 78807), reused 90936 (delta 70473) Receiving objects: 100% (100200/100200), 61.81 MiB | 698 KiB/s, done. Resolving deltas: 100% (78807/78807), done. 进入node目录 ~ cd node ~ pwd /home/conan/workspace/nodejs/node 切换最新的release的版本v0.11.2-release(可以先用git branch -a看一下最新版本是多少) ~ git checkout v0.11.2-release Branch v0.11.2-release set up to track remote branch v0.11.2-release from origin. Switched to a new branch ‘v0.11.2-release’ 进行安装 ./configure make sudo make install 安装完成,查看node版本 ~ node -v -bash: /usr/bin/node: No such file or directory 提示错误,没有找到node,查一下node安装位置 ~ whereis node node: /usr/local/bin/node 增加软链接:node和npm到/usr/bin ~ sudo ln -s /usr/local/bin/node /usr/bin/node ~ sudo ln -s /usr/local/bin/npm /usr/bin/npm 我们再查看node和npm版本 ~ node -v v0.11.2 ~ npm -v 1.2.21 下面安装express ~ sudo npm install express -g express@3.2.6 /usr/local/lib/node_modules/express ├── methods@0.0.1 ├── fresh@0.1.0 ├── range-parser@0.0.4 ├── cookie-signature@1.0.1 ├── buffer-crc32@0.2.1 ├── cookie@0.1.0 ├── debug@0.7.2 ├── commander@0.6.1 ├── mkdirp@0.3.4 ├── send@0.1.0 (mime@1.2.6) └── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, […]

抓取指定页面的全部图片

今天,指鹤用nodejs写了一个抓取页面的代码,特此分享出来吧,先贴代码,后面再解释一下; 注释:刚刚发现下面的代码在某些页面会出现问题,所以只当参考吧。若是真的打算将一个页面的图片全部复制下来,不用批量出来的话,只需要ctrl+s将页面另存一下就可以得到一个image的文加件(chrome下测试)。 以上代码一共用到了nodejs的三个模块,http和fs都是nodejs本身自带的,cheerio需要自己用npm安装一下,安装命令为npm install -g cheerio,加-g是将cheerio安装到全局,不加也可以,就将cheerio安装到了你执行目录的当前路径。 这里可能会遇到一个问题,你可能觉得安装到全局后便可以在任意目录下去引用cheerio,我当时也是这样认为的,后来发现会报错,无法引用到cheerio,最后查了发现原来还要修改一下环境变量,将node的npm管理目录放到环境变量中。添加环境变量很简单,以Windows为例,右键电脑选择属性,进入到高级系统设置,然后在高级的自选项下面有环境变量选项,点开后新加环境变量就可以了。新加的环境变量如下: 变量名:NODE_PATH 变量值:C:\Users\********\AppData\Roaming\npm\node_modules(根据你自己的node_modules目录所在位置进行修改) 完成上面的所有步骤后,新建文件(download.js)将我上面的代码拷入进去,cd到代码所有目录执行node  download.js执行便可,想要抓取那个页面的图片,直接将最上面的http://chuangshi.qq.com/bk/xh/38957535-1.html替换下就可以。 对于nodejs指鹤也是初学,若是有说的不对的地方欢迎批评和指正。

Windows下 NodeJS 全局安装 modules 后在应用中 require 不到的解决方案

Windows环境下, 通过 npm install -g 安装的全局模块, 可能无法在app中被require引用到, 怎么办?其实, 只要设置环境变量 NODE_PATH 指向全局模块根目录即可. 我的解决方法是: 我的电脑->属性-> 高级-> 环境变量, 添加一个环境变量名为 NODE_PATH , 将其值设置为全局模块的根目录. 我这里这个目录是: C:\Documents and Settings\Administrator\Application Data\npm\node_modules , 大家可以根据实际情况做相应修改。 原文连接:http://cnodejs.org/topic/4f8c03bb827290275d781069