我的第一个 Node.js:掌握基础知识❗
引言
什么是Node.js?
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
引言
大家好!最近我一直在专注于后端开发,终于决定是时候深入学习Node.js了。我之前一直拖延着,现在终于实现了!
说实话,以前一想到后端概念——比如创建服务器、操作数据库……😳以及各种基础设施——我就有点不知所措。我之前也不确定Node.js会给我带来什么……直到几天前。🤗
令我惊讶的是,我真的非常喜欢它!它的操作方式非常容易上手,逻辑也很清晰,尤其是我已经掌握了一些 JavaScript 知识。
后端领域还有很多东西需要学习,但我并不追求完美,而是专注于进步本身。想到能将这些技能应用到未来的项目中,我就动力十足,渴望继续前进!
祝我好运!😬 希望学习 Node.js 的过程中别把服务器搞崩溃!😂
严肃地说,以下是我们将在第一部分详细介绍的内容:
1. 准备工作:安装、REPL;package.json
2. 模块化:理解模块(CommonJS 与 ES 模块);
3. 工作流程:NPM 脚本、Nodemon;.gitignore
4. 安全基线:环境变量和.env文件
什么是Node.js?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许你在服务器端运行 JavaScript 代码。与在浏览器中运行的传统 JavaScript 不同,Node.js 使你能够使用同一种语言构建服务器端应用程序、管理文件和数据库、创建 API 等等。
Node.js 通常用于服务器端和后端开发,包括:
➤ Web 服务器和实时应用程序,
➤ 用于前端和后端之间通信的 REST 或 GraphQL API,
➤ 数据库管理(MongoDB、PostgreSQL、MySQL 等),
➤ 自动化和服务器端脚本,
➤ 由于其异步、事件驱动的架构,可实现微服务和可扩展的应用程序。
1. 铺垫
在编写任何一行服务器代码之前,我们需要确保运行时环境已安装,并且我们的项目已正确初始化!
1.a) 安装:
显然,第一步是将 Node.js 安装到您的系统中。
这些命令应该会显示已安装的版本,确认 Node.js 引擎和 NPM(Node 包管理器)都已准备就绪。
node -v
npm -v
1.b) Node REPL(即时游乐场):
REPL(读取-求值-打印循环)是一个用于快速测试函数、新语法或原生模块的工具,无需编写和保存整个文件。
测试代码:
node
> console.log("Hello, Node.js!")
1.c) package.json:
可以说,`.js`文件package.json是 Node.js 项目中最关键的文件。它就像是应用程序的身份证明。
要创建此文件,请导航到项目目录并运行:
npm init -y
目前看来,它就像一个简单又熟悉的蛋糕,对吧?🤗
2. 模块化
任何稳健的 Node.js 项目的关键组成部分在于代码的组织和跨文件共享方式。Node.js 目前支持两种主要的模块系统。理解它们之间的区别对你至关重要!
2.a) CommonJS (CJS) - 经典版
这是 Node.js 中最初且沿用多年的标准系统。
语法:使用require()函数和module.exports。
执行:模块加载是同步的(模块完全加载后才会停止执行)。
用法:除非另有说明,否则它是扩展名为 .txt 的文件的默认设置.js。
例子:
// exporting module
module.exports = {
add: (a, b) => a + b
};
// importing module
const { add } = require('./math');
console.log(add(5, 5));
2.b) ES 模块 (ESM) - 现代标准
ESM 是官方的 JavaScript 标准(在 ES6 中引入),现在 Node.js 已完全支持并推荐在新项目中使用。
语法:使用 ` importand export` keywords。
执行:支持异步加载,通常效率更高。
用法:需要.mjs扩展名或"type": "module"设置package.json file。
// exporting module
export const subtract = (a, b) => a - b;
// importing module
import { subtract } from './math.js';
console.log(subtract(10, 3));
我建议你使用模块时要格外小心。ES 模块是现代标准,但在导入任何模块之前,务必确保你了解项目使用的是哪种类型的模块。我一开始也遇到过这个问题❗🙃
3. 工作流程
这些功能将帮助您实现工作流程的自动化和简化,从而节省时间并避免重复性任务。
3.a) NPM 脚本
直接从您的终端自动执行终端命令package.json。
例如,您可以创建一个脚本来启动服务器:
// package.json
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
}
然后,您可以使用以下命令轻松运行它们:npm run start或npm run dev。
3.b) Nodemon(自动刷新器)
Nodemon 是一个仅供开发使用的必备 NPM 包。它为何如此重要?❓它会自动监控源文件的更改,并在每次保存时重启 Node.js 服务器。
安装方法(作为开发依赖项):npm install -D nodemon
3.c) .gitignore(保持 GitHub 整洁)
此文件对于维护干净安全的仓库至关重要。它指示 Git在提交时忽略哪些文件和目录。
必须忽略:最关键的两项是node_modules目录(非常大!)和.env文件(包含敏感数据!)。
4. 安全基线
我们将拥有一些敏感信息,这些信息绝不应该提交到源代码控制系统(例如 GitHub)。这些信息包括 API 密钥、数据库密码以及不同环境的特定配置设置。这时就需要用到环境变量了,例如.env:
DB_HOST=localhost
DB_PORT=5432
API_KEY=my_super_secret_key_12345
非常重要!请务必将此.env文件包含在您的.gitignore❗中。这可以确保您的密钥保留在本地并安全无虞。
结论❤️
目前为止,一切似乎都很顺利!当然,下一篇文章我会继续深入探讨如何创建你的第一个服务器。
我承诺会在这里与大家分享我的学习心得,既是为了方便那些想要回顾的人,也是为了我自己——正如人们常说的,向别人解释是学习最快的方法。
我真的很高兴能踏入后端开发的世界。这感觉就像一个全新的开始,它为我开辟了新的道路,真正激发了我的好奇心。如果你正在读这篇文章,那么你可能已经熟悉 Node.js,或者正计划学习它,所以请为你现在的成就感到自豪。你做得非常棒,你正处于你该在的位置!继续编码吧!
我强烈建议您也查看一下这里的文档。
千万不要忽略官方文档!工具和快速搜索功能可以满足您的即时需求,但只有官方文档才能提供学习 Node.js 所需的完整、官方背景信息。
如果您喜欢这篇文章,请留言或点赞❤️!我非常感谢您的支持,也感谢您抽出时间阅读我的文章。
祝你好运,编程愉快! 🤗
文章来源:https://dev.to/cristea_theodora_6200140b/from-zero-to-start-the-nodejs-fundamentals-you-need-to-know-part-i-32an

