Node.js入门初体验
今天有一个类似网络爬虫的需求,本来打算用我还算熟悉的asp或者asp.NET来做这个事情,但是写了这么长时间js,asp的语法实在不喜欢,VS又早被我卸掉了,思来想去打算用一下最近比较火的Node.js试一试。
倒腾了一整晚,很有必要为之文以志之下。O(∩_∩)O~
一、安装node.js
http://nodejs.org/
命令行 node -v 可以测试是否安装成功
二、使用npm安装其他库 (Node Package Manager)
程序开发中需要安装一些Nodejs提供的基本的模块之外的的工具库,比如request
1.安装
命令行 npm install request
耐心等待,字符不再往上闪动并且可以继续输入命令的时候表示安装成功了。(因为网络的原因,我的安装是不完全成功的)
2.检查是否安装成功
命令行 npm list 查看当前目录下已安装的node包
这个命令输出中可以看到有哪些包是安装失败的
比如,request下面有一行红字“UNMET DEPENDENCY”mime ~1.2.9
这说明request的一个依赖包mime没有安装成功,解决这个问题可以有两个办法:
1)重新安装 npm install mime(可以重复多次)
2)实在无效可以在github上找到相应的包页面,如https://github.com/broofa/node-mime
然后下载到nodejs安装目录\node_modules\npm\node_modules\request\node_modules\mime
注:刚和一位师哥交流了下,解决网络的问题,可以用cnpm的源,比如npm config set registry http://registry.cnpmjs.org。(具体效果如何,下次再研究)
就是淘宝的源 http://npm.taobao.org/
3.附一个npm常用的命令集合
http://hi.baidu.com/alimyself/item/3ba5200faba0c7c92f4c6b43
三、实战小应用
功能:下载一个图片到本地
新建一个demo.js的文件,写入以下代码,然后命令行 node demo.js的地址 回车
var fs = require('fs');
var request = require('request');
var imgUrl="http://static.cnblogs.com/images/logo_small.gif";
var fileName="logo_small.gif";
request.head(imgUrl, function(){
request(imgUrl).pipe(fs.createWriteStream("D:/" + fileName));
console.log("图片下载成功");
});
这个时候程序执行成功,D盘下可以看到下载下来的博客园的图标了。
哇咔咔,虽然很困,但是非常兴奋,话说明后天应该就可以写个爬虫,把某个漏洞明显的网站上的萌妹子们头像qq电话等等等等全爬下来了哦!
Node.js入门初体验的更多相关文章
- node.js + express 初体验【hello world】
[node.js] 一个神奇的XX 呵呵 :) 不知道怎么形容他才好! [express] 是node.js 开发web应用程序的框架 开发环境:XP 大家共同进步吧 :) 一:前期准备: 1:下载 ...
- Node.js 安装 初体验(1)
1.安装nodejs http://nodejs.org/download/ 自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量 mac安装后,会提 ...
- 【Node.js】初体验之安装和HelloWorld
听说Node.js是个蛮吊的东东.中午休息时间有限,暂时看了下知道怎么安装和初步使用了. 1.安装: 到Node.js官网下载就可以了,才5M多点,双击后按步骤安装就可以了. 2."Hell ...
- Node.js 的初体验
例子1: 1.首先第一步 :要 下载 node.js. 官网 上可以下载 下载完后,是这个玩意. 2. 打开 node.js ,然后输入 // 引入http模块 var http = require( ...
- gulp快速入门&初体验
前言 一句话先 gulp 是一个可以简单和自动化"管理"前端文件的构建工具 先说我以前的主要工作,我主要是做游戏服务端的,用c++/python,所以我对东西的概念理解难免要套到自 ...
- 极简 Node.js 入门 - Node.js 是什么、性能有优势?
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.2 模块系统
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.3 调试
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.4 NPM & package.json
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
随机推荐
- 利用http缓存数据
通过一个简单的ajax请求来详解http的缓存技术 register.html <!DOCTYPE> <html> <head> <title>http ...
- [收藏]C++简单五子棋
#include<iostream> #include<iomanip> using namespace std; ; //棋盘行数 ; //棋盘列数 char p[X][Y] ...
- Javascript初学篇章_6(BOM)
BOM 浏览器对象模型 BOM (浏览器对象模型),它提供了与浏览器窗口进行交互的对象 一.window对象 Window对 象表示整个浏览器窗口. 1.系统消息框 alert() alert('he ...
- C\C++ 1A2B小游戏源码
学了一段时间,心血来潮写了一个1A2B小游戏,很多人应该玩过,是一个挺有意思的益智小游戏,之前用易语言写过,现在又用C++重写了一下. 编译运行无错,整体程序设计思路为:进入循环,初始化游戏,读入一个 ...
- mongodb的修改器
在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以 ...
- SQL多表合并查询结果
两表合并查询,并同时展示及分页SELECT a.* FROM ( ( SELECT punycode, `domain`, 'Success' AS state, add_time, AS refun ...
- Chrome必备的扩展
Devtools Terminal ——浏览器终端.牛逼的不得了! LiveReload——为官方 LiveReload 应用程序(Mac 和 Windows)和第三方,例如 guard-livere ...
- 【二】jekyll 的使用
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- Haskell 函数式编程快速入门【草】
什么是函数式编程 用常规编程语言中的函数指针.委托和Lambda表达式等概念来帮助理解(其实函数式编程就是Lambda演算延伸而来的编程范式). 函数式编程中函数可以被非常容易的定义和传递. Hask ...
- Redis 集群的合纵与连横
之前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题. 如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题.就像我们做数据库分库 ...