返回
Node.js 的奇妙之处:轻松完成业务以外的任务
前端
2023-10-31 03:02:52
输入
如果不用 Node.js 写业务
输出
Node.js 不仅是构建运行时,更可轻松应对文件读取、数据解析等需求,帮助解决持续集成难题。同时,它还可轻松创建脚本、CLI工具、网络爬虫、图像处理程序和机器学习项目,帮助开发者解放双手,提高效率。
最近整理博客,发现很久没有介绍语言相关的小用法了,正巧休息的时候把代码仓库归置了一遍,用几个简短的例子,聊聊 Node.js 除了写业务脚本、做构建运行时,它还能做些什么有趣的事情吧。
1. 持续集成:轻松搞定文件解析
在做持续集成中,偶尔会遇到需要解析 API 结果,或者读取文件,获取文件指定数据的需求,当使用 Node.js 时,这些问题都可以轻松搞定。
// 读取文件内容
const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf-8');
// 解析 JSON 字符串
const json = JSON.parse(data);
// 获取指定数据
const value = json.key;
2. 创建脚本:快速完成自动化任务
Node.js 可以轻松创建脚本,帮助我们快速完成一些自动化任务,如生成文件、发送电子邮件、打包代码等。
// 生成文件
const fs = require('fs');
fs.writeFileSync('file.txt', 'Hello World!');
// 发送电子邮件
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport(...);
transporter.sendMail({
from: 'sender@example.com',
to: 'receiver@example.com',
subject: 'Hello',
text: 'Hello World!'
});
// 打包代码
const { exec } = require('child_process');
exec('npm run build', (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
3. 构建 CLI 工具:轻松操作命令行
Node.js 可以轻松构建 CLI 工具,帮助我们轻松操作命令行,如创建项目、运行测试、部署代码等。
// 构建 CLI 工具
const { program } = require('commander');
program
.command('create <project-name>')
.description('Create a new project')
.action((projectName) => {
// 创建项目代码
});
program
.command('test')
.description('Run the tests')
.action(() => {
// 运行测试代码
});
program
.command('deploy')
.description('Deploy the code')
.action(() => {
// 部署代码
});
program.parse(process.argv);
4. 开发网络爬虫:轻松获取网络数据
Node.js 可以轻松开发网络爬虫,帮助我们轻松获取网络数据,如爬取新闻、商品信息、股票数据等。
// 开发网络爬虫
const request = require('request');
const cheerio = require('cheerio');
// 爬取新闻
request('https://example.com/news', (err, res, body) => {
if (err) {
console.error(err);
return;
}
const $ = cheerio.load(body);
$('.news-item').each((i, element) => {
const title = $(element).find('.title').text();
const content = $(element).find('.content').text();
// 保存新闻数据
});
});
// 爬取商品信息
request('https://example.com/product', (err, res, body) => {
if (err) {
console.error(err);
return;
}
const $ = cheerio.load(body);
$('.product-item').each((i, element) => {
const name = $(element).find('.name').text();
const price = $(element).find('.price').text();
// 保存商品信息
});
});
// 爬取股票数据
request('https://example.com/stock', (err, res, body) => {
if (err) {
console.error(err);
return;
}
const $ = cheerio.load(body);
$('.stock-item').each((i, element) => {
const name = $(element).find('.name').text();
const price = $(element).find('.price').text();
// 保存股票数据
});
});
5. 创建图像处理程序:轻松处理图像
Node.js 可以轻松创建图像处理程序,帮助我们轻松处理图像,如裁剪、旋转、添加水印等。
// 创建图像处理程序
const sharp = require('sharp');
// 裁剪图像
sharp('input.jpg')
.resize(200, 200)
.toFile('output.jpg');
// 旋转图像
sharp('input.jpg')
.rotate(90)
.toFile('output.jpg');
// 添加水印
sharp('input.jpg')
.composite([
{
input: 'watermark.png',
gravity: 'southeast'
}
])
.toFile('output.jpg');
6. 构建机器学习项目:轻松实现机器学习
Node.js 可以轻松构建机器学习项目,帮助我们轻松实现机器学习,如图像识别、自然语言处理、语音识别等。
// 构建机器学习项目
const tensorflow = require('@tensorflow/tfjs-node');
// 图像识别
const model = await tensorflow.loadGraphModel('model.json');
const input = tensorflow.tensor2d([
[1, 2, 3],
[4, 5, 6]
]);
const output = await model.predict(input);
console.log(output.dataSync());
// 自然语言处理
const model = await tensorflow.loadGraphModel('model.json');
const input = 'Hello World!';
const output = await model.predict(input);
console.log(output.dataSync());
// 语音识别
const model = await tensorflow.loadGraphModel('model.json');
const input = 'Hello World!';
const output = await model.predict(input);
console.log(output.dataSync());
当然,除了这些,Node.js 还可以做更多有趣的事情,如构建游戏、开发物联网应用、创建区块链项目等。希望这些例子能激发你的灵感,让你发现 Node.js 的更多可能性。