说说nodejs里实用的模块

随着NodeJS的流行,越来越多的第三方模块出现,但是当你开发一个好用的工具或者应用的时候,有没有感觉手头上缺少一些利器呢,虽然node本身提供了一些api,但是在开发效率上,有些第三方模块更胜一筹,下面说说社区里比较实用的模块.

功能类库

fs-extra(文件操作)

把这个放在第一个说,因为平时操作文件太频繁了,这个绝对可以提高你的开发效率,虽然node本身提供fs模块,但是在用户体验上还是不行,比如模拟一些linux命令rm -rf,cp -r,或者创建类似/foo/bar/foo.txt这样字符串的路径时,正是fs-extra的用武之地.

  • 安装: npm install --save fs-extra
  • API文档

下面演示一个简单的api,复制一个文件夹下内容到另一个文件夹下,更多详细请点击上面的文档链接

var fs = require('fs-extra')

fs.copy('/tmp/myfile', '/tmp/mynewfile', function(err) {
  if (err) return console.error(err)
  console.log("success!")
}) //copies file

fs.copy('/tmp/mydir', '/tmp/mynewdir', function(err) {
  if (err) return console.error(err)
  console.log("success!")
})

cheerio(jquery实现)

当你想在node里实现jquery的操作时,或者想在测试用例里实现dom操作时,cheerio正是你的不二选择.

  • 安装: npm install --save cheerio
  • API文档

下面演示一些它简单的api,查找某个元素的几种方式

// 1.先包装html元素,然后操作dom
var cheerio = require('cheerio'),
    $ = cheerio.load('<h2 class="title">Hello world</h2>');

$('h2.title').text('Hello there!');
$('h2').addClass('welcome');

// 2.直接在操作的时候传递html元素
$ = require('cheerio');
$('ul', '<ul id="fruits">...</ul>');

Node版本管理

n

n是一款node版本管理工具,使用非常方便,出自tj之手

nvm

nvm也是一款node版本管理工具,跟n相比,功能更多,比前者要重,想用哪个就看使用习惯了

开发工具

node-inspector

node-inspector是一款调试工具,非常好用,基于WebKit Web Inspector.

  • 安装: npm install -g node-inspector
  • 使用: node-debug *.js, 这里需要说下模块名跟运行命令名不一样
  • 使用文档

node-dev

node-dev是一款开发工具,用来处理当require的文件改变的,重新启动应用,跟supervisor,nodemon不一样的时,无需配置任何东西,而且使用node-notifier来发送桌面消息,包括应用状态改变以及错误信息.

nodemon

nodemon是一款开发工具,也是用来处理应用文件修改时,重新启动应用,跟node-dev不同的时,它配置非常灵活,可以支持多种情况

supervisor

supervisornodemon比较接近,都是监视应用文件修改时候重启应用程序,但是它在进程crash时,也可以重启应用.

时间: 2024-10-06 00:50:25

说说nodejs里实用的模块的相关文章

NodeJs中的VM模块详解

  这篇文章主要介绍了NodeJs中的VM模块详解,本文讲解了什么是VM?.VM模块的runInThisContext.runInThisContext方法等内容,需要的朋友可以参考下 什么是VM? VM模块是NodeJS里面的核心模块,支撑了require方法和NodeJS的运行机制,我们有些时候可能也要用到VM模板来做一些特殊的事情. 通过VM,JS可以被编译后立即执行或者编译保存下来稍后执行(JavaScript code can be compiled and run immediate

Nodejs进阶:核心模块net入门与实例讲解

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址. 模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块. 从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了: net.Server:TCP server,内部通过

Nodejs基础:stream模块入门介绍与使用

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout.http.clientRequest. 对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要). 而对于想要实现自定义stream实例的开发者来说,就得好好研究stream的扩展API了,比如gulp的内部实

Nodejs进阶:核心模块https 之 如何优雅的访问12306

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严峻的今天,网站采用HTTPS是个必然的趋势. 在nodejs中,提供了 https 这个模块来完成 HTTPS 相关功能.从官方文档来看,跟 http 模块用法非常相似. 本文主要包含两部分: 通过客户端.服务端的例子,对https模块进行入门讲解. 如何访问安全证书不受信任的网站.(以 12306 为例子)

Nodejs进阶:核心模块net入门学习与实例讲解_node.js

模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块. 从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了: net.Server:TCP server,内部通过socket来实现与客户端的通信. net.Socket:tcp/本地 socket的

Nodejs进阶:核心模块Buffer常用API使用总结

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写.网络请求数据的处理等. Buffer的API非常多,本文仅挑选 比较常用/容易理解 的API进行讲解,包括Buffer实例的创建.比较.连接.拷贝.查找.遍历.类型转换.截取.编码转换等. 创建 new Buffer(array) Buffer.alloc(length) Bu

NodeJS的url截取模块url-extract的使用实例_基础知识

上次介绍了怎么利用NodeJS + PhantomJS进行截图,但由于对每次截图操作,都启用了一个PhantomJS进程,所以并发量上去后,效率堪忧,所以我们重写了所有代码,并将其独立成为一个模块,方便调用.如何改进?控制线程数,以及单线程处理url数量.使用Standard Output & WebSocket 进行通讯.添加缓存机制,目前使用Javascript Object进行.对外提供简易的接口. 设计图   依赖 & 安装 由于PhantomJS 1.9.0+才开始支持Webso

Nodejs中解决cluster模块的多进程如何共享数据问题_node.js

前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现.本文将介绍利用cluster模块创建的多线程如何共享数据的问题. 进程间数据共享 首先举个简单的例子,代码如下: var cluster = require('cluster'); var data = 0;//这里定义数据不会被所有进程共享,各个进程有各自的内存区域 if (cluster.isMaster) { //主进程

JavaScript里实用的原生API汇总

  这段时间翻了一番JavaScript的api,发现不少好的轮子,省去造的麻烦了.下面给大家汇总一下,有需要的小伙伴可以参考下. 直接进入正题 解析字符串对象 我们都知道,JavaScript对象可以序列化为JSON,JSON也可以解析成对象,但是问题是如果出现了一个既不是JSON也不是对象的"东西",转成哪一方都不方便,那么eval就可以派上用场 ? 1 2 var obj = "{a:1,b:2}"; // 看起来像对象的字符串 eval("(&qu