toppic
当前位置: 首页> 玄幻小说> 跟我一起学NodeJS | 你需要知道的20个模块(下)

跟我一起学NodeJS | 你需要知道的20个模块(下)

2020-11-19 07:22:51
点击上方“前端达人” 可以订阅哦!

在上一篇文章《跟我一起学NodeJS | 你需要知道的20个模块(上)》,小编给大家分享了前10个,为了不让大家期待太久,今天小编更新了剩下的部分,希望对大家有所帮助。

压缩类

11.Minify images

官网:http://github.com/imagemin/imagemin

安装命令:

npm install --save imagemin

虽然glup,grunt插件也提供类似的图片压缩功能,但是imagemin模块配置起来更加灵活,易用,示例代码如下:

const imagemin = require('imagemin');const imageminMozjpeg = require('imagemin-mozjpeg');const imageminPngquant = require('imagemin-pngquant');imagemin(['images/*.{jpg,png}'], 'build/images', {
   plugins: [        imageminMozjpeg(),        imageminPngquant({quality: '65-80'})
   ]
}).then(files => {    console.log(files);   });

12.Minify HTML

官网:http://github.com/Kangax/html-minifier

安装命令:

npm install html-minifier

html-minifier,通过后台代码的方式压缩HTML,操作更加方便,虽然gulp和Grunt也提供类似的功能,示例代码如下:

var minify = require('html-minifier').minify;

var result = minify('<p title="blah" id="moo">foo</p>', {
 removeAttributeQuotes: true});

13.Minify css

官网:http://github.com/jakubpawlowicz/clean-css

安装命令:

npm install clean-css

clean-css 是一个非常简单的 CSS 压缩模块,支持命令行和后台代码方式进行压缩,支持多种压缩方式,示例代码如下:

cleancss -o merged-and-minified.css one.css two.css three.css


var CleanCSS = require('clean-css');

var source = 'a{font-weight:bold;}';

var minified = new CleanCSS().minify(source).styles;

14. Minify Javascript

官网:http://github.com/mishoo/uglifyJS2

安装命令:

npm install uglify-js

UglifyJS2 是作者对UglifyJS的重写,是完全的重写,而不仅仅是升级。从UglifyJS2官司方网页介绍看,UglifyJS2把整个的JS压缩过程,做了更进一步的细化,同时支持命令行方式。详情请查看官网,示例代码如下:

var result = UglifyJS.minify([ "file1.js", "file2.js", "file3.js" ], {
   outSourceMap: "out.js.map"});

console.log(result.code); // minified outputconsole.log(result.map);

15. Minify SVG

官网:http://github.com/SVG/SVGO

安装命令:

npm install -g svgo

很好用的svg压缩工具,一行简单的命令行就能轻松完成压缩任务,示例代码如下:

$ svgo test.svg test.min.svg

实用模块

16. Log application output

官网:http://github.com/winstonjs/winston

安装命令:

npm install winston

日志对于问题定位、调试,系统性能调优至关重要,尤其是系统复杂以及在线运行的情况下。Winston是Node.js最流行的日志框架之一,设计为一个简单通用的日志库,支持多传输(在Winston中,一个传输实质上代表储存设备,也就是数据最终保存在哪里),每个Winston实例都可以对不同级别的日志配置不同的传输。示例代码如下:

var logger = new (winston.Logger)({
 transports: [    new (winston.transports.File)({
     name: 'info-file',
     filename: 'filelog-info.log',
     level: 'info'
   }),    new (winston.transports.File)({
     name: 'error-file',
     filename: 'filelog-error.log',
     level: 'error'
   })
 ]
});

17. Generate fake data

官网:http://github.com/marak/faker.js

安装命令:

$ git clone https://github.com/Marak/Faker.js.git

$ cd Faker.js/

$ npm install

我们为了做黑盒测试经常会需要做一些数据来模拟输入,NodeJS有丰富的第三方模块可以实现类似的功能,faker.js目前来说是最受欢迎的插件,示例代码如下:

  var faker = require('./faker');
  var randomName = faker.Name.findName();  var randomEmail = faker.Internet.email();  var randomCard = faker.Helpers.createCard(); 

18. Send Email

官网:http://github.com/nodemailer/nodemailer

安装命令:

npm install nodemailer

电子邮件,是互联网应用最广泛使用的服务之一,通过电子邮件系统,我们可以与世界上任何一个角落的网络用户进行联系。

使用Nodejs收发电子邮件也非常简单,Nodemailer包就可以帮助快速实现发邮件的功能。示例代码如下:

var nodemailer = require('nodemailer');

// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');

// setup e-mail data with unicode symbols
var mailOptions = {
from: '"Fred Foo " <foo@blurdybloop.com>', // sender address
   to: 'bar@blurdybloop.com, baz@blurdybloop.com', // list of receivers
   subject: 'Hello ✔', // Subject line
   text: 'Hello world ', // plaintext body
   html: '<b>Hello world </b>' // html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});

19. Create REST APIs

官网:http://github.com/restify/node-restify

安装命令:

npm install restify

restify 是一个基于Nodejs的REST应用框架,支持服务器端和客户端。 restify比起 express 更专注于 REST 服务,去掉了 express 中的 template , render 等功能,同时强化了 REST 协议使用,版本化支持, HTTP 的异常处理,示例代码如下:

var restify = require('restify');

function respond(req, res, next) {
 res.send('hello ' + req.params.name);}

var server = restify.createServer();server.get('/hello/:name', respond);

server.listen(8080, function() {
 console.log('%s listening at %s', server.name, server.url);});

20. Create CLI application

官网:http://github.com/tj/commander.js

安装命令:

npm install commander

Commander.js 是 TJ 写的一个帮助快速开发Nodejs命令行工具的package。TJ同时也是 Express , mocha , koa , debug 等流行package的作者,是Nodejs社区里非常知名的高产作者。示例代码如下:

var program = require('commander');
program
 .option('-d, --date', 'display current date')
 .parse(process.argv);var dt = new Date();if (program.date) {console.log(dt.getFullYear()
+ '-'
+ (dt.getMonth() + 1)
+ '-'
+ dt.getDate()
);
}

关于NodeJS模块的分享就到这里,希望大家能够喜欢,在以后的文章小编还会陆续整理相关的内容,敬请期待。

公众号

前端达人

长按识别左边二维码关注我


推荐公众号:前端迷关注前端技术,分享前端资源!
长按二维码点选(识别图中二维码)




友情链接