nodejs初探示例——本地mac环境

一 背景

nodejs的下载和安装由于不是本文重点,故不再赘述,网络正常的情况下,基本都可以顺利安装。

直接从官网:https://nodejs.org/en/download/ 下载mac 64位版本,对应的是node-v14.15.3.pkg版本安装包。

安装后开始执行第一个示例,项目需求将需要的几个功能:1、图片内容获取,2、内容转base64、计算md5

二 依赖包

2.1 request

设计为进行http调用的最简单方法。它支持HTTPS,默认情况下遵循重定向。

2.2 crypto

提供通用的加密和哈希算法。用纯JavaScript代码实现这些功能不是不可能,但速度会非常慢。Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaScript接口,这样用起来方便,运行速度也快。

三 示例

注:文本保存为 cal_img_similar.js,在命令行执行node cal_img_similar.js即可。

3.1 字符串转Base64示例代码

var crypto = require('crypto');

var buffer = Buffer.from('this is an image demo');
var base64Str = buffer.toString('base64');
console.log(base64Str);

var buffer = Buffer.from('dGhpcyBpcyBhbiBpbWFnZSBkZW1v', 'base64')
var initStr = buffer.toString();
console.log(initStr);

注意:在有些文章,搜到的是使用 new Buffer(ss);语句来创建Buffer,但现在执行会导致报错:

(node:15386) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

(Use `node --trace-deprecation ...` to show where the warning was created)

即 Buffer()方法,已经被废弃。所以我们使用Buffer.from(ss)进行转换。

3.2 字符串计算md5

var crypto = require('crypto');

var content = '123456';
var result = crypto.createHash('md5').update(content).digest("hex")
console.log("md5 result:"+result);  //e10adc3949ba59abbe56e057f20f883e

3.3 获取图片内容

var request = require('request');

var inputImgUrl = "http://avatar.csdn.net/1/A/1/3_zzwwjjdj1.jpg";
request(inputImgUrl, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
});

输出内容如下: 

可见,直接输出字符(流)会是乱码,所以通常我们会进行base64 或 计算md5转换。处理如下:

var request = require('request');
var crypto = require('crypto');

var inputImgUrl = "http://avatar.csdn.net/1/A/1/3_zzwwjjdj1.jpg";
request(inputImgUrl, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        //计算md5
        var result = crypto.createHash('md5').update(body).digest("hex");
        console.log(result);

        // var buffer = Buffer.from(body);
        // var base64Str = buffer.toString('base64');
        // console.log(base64Str);
    }
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值