Node.js 3个隐藏但非常实用的功能

大家好,我是宝哥。

在日常的Node.js开发中,我们经常会遇到需要频繁重启服务、手动加载环境变量和希望输出更加直观的问题。这些问题虽小,却极大地影响了开发效率和体验。

今天宝哥分享的这篇文章就能很好地解决上述问题,一起来看看Node.js的三个隐藏但非常实用的功能,让我们的开发过程更加流畅和高效。

1. 代码变更自动重新加载

Node.js自2022年秋季以来增加了一个实验性功能,通过--watch命令行标志,可以让Node.js在检测到文件系统变更时自动重启代码。这让我不再需要使用像nodemon这样的外部工具来监控文件变化。例如,运行以下命令:

node --watch watch1.js

watch1.js的内容非常简单:

console.log('Watch me!', new Date());

当脚本运行后,如果对脚本进行修改,Node.js会自动重新启动脚本,并清除整个终端屏幕,给出有用的重启和完成消息。

35bd627fac25ac750e01016cedfbc174.png
nodejs watch

此外,我还可以使用--watch-path参数来监视其他文件的更改。例如,如果有一个脚本读取了notes.txt文件:

import fs from 'fs';

let text = fs.readFileSync('./notes.txt', 'utf8');

console.log(`Contents of file:\n${text}`);

我可以通过以下命令监视notes.txt文件的变化:

node --watch-path notes.txt --watch watch2.js

这样,无论是修改JavaScript脚本还是notes.txt文件,都会自动重新加载。

2. 加载环境变量

在Node.js 20.6.0版本中,增加了一个--env-file标志,允许直接从.env文件加载环境变量,而不需要使用dotenv库。例如,如果有一个.env文件:

MILKSHAKE=brings all the boys to the yard

和一个简单的Node.js程序:

console.log(process.env.MILKSHAKE);

可以使用以下命令运行程序:

node --env-file .env env1.js

Node.js v21.7.0进一步简化了这个过程,引入了process.loadEnvFile()方法,使得加载.env文件变得和使用命令行标志一样简单:

process.loadEnvFile();
console.log(process.env.MILKSHAKE);

3. 多彩的控制台输出

Node.js 21.7.0还增加了对控制台输出着色的支持。通过node:util模块中的styleText方法,可以很容易地向控制台输出添加颜色和样式。例如:

import { styleText } from 'node:util';

console.log(styleText('red', 'Danger, Danger, Will Robinson!'));
console.log(styleText('yellow', 'Nine Princes of Amber'));
console.log(styleText('green', 'All systems are nominal.'));

将输出:

9c89be2629e07b76fda5a67c8f7e197c.png

这将使得输出更加醒目,便于区分不同类型的消息。此外,还可以使用背景颜色和“明亮”变体来进一步自定义输出的外观。

console.log(styleText('bgRed', 'Error, error Will Robinson!'));
console.log(styleText('redBright', 'Error, error Will Robinson!'));

将输出:

f4acd0017fec24659d08653944ba6a22.png

或者文字和背景组合:

console.log(styleText('bold', styleText('red','Error, error Will Robinson!')));
87d5cd43d994994f55ac7c243080f5c0.png

以上就是我最近发现的Node.js的几个实用特性,希望对你也有所帮助。如果你还有其他有趣的Node.js特性推荐,欢迎在评论区分享!

如果你觉得宝哥的分享还算实在,就给我点个赞,关注一波。分享出去,也许你的转发能给别人带来一点启发。

关注我,加星标,明天见!

推荐几个优秀的小报童专栏

购买上面小报童,送宝哥副业交流群,

送我公众号整理的所有资料,

包括前端电子书,面试资料,简历模板和副业资料等!

b4960de5a8fb0a790ef5874de96887e2.png

搞副业,从避坑开始,100个小项目快速试错

推荐几个优秀的小报童专栏,助你找到有价值的内容

以上,如果本文对你有所启发,欢迎点“398952b4d9c53f475ca9d1a2fd0ddea0.gif在看、点赞”支持下吧! 52e2347237ef4de0ac260cc50f3911f7.gif

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值