Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端运行 JavaScript 代码。Node.js 提供了一系列的命令行工具和内置模块,使得开发者能够快速构建各种服务器端应用程序。以下是一些常用的 Node.js 命令和它们的用途:

1. **node**:
   - 这是启动 Node.js 应用程序的基本命令。例如,要运行名为 `app.js` 的文件,你可以使用 `node app.js`。

2. **npm**:
   - Node Package Manager(npm)是 Node.js 的包管理器,用于安装和管理 Node.js 模块。
   - `npm init`:初始化一个新的 Node.js 项目,创建 `package.json` 文件。
   - `npm install <package>`:安装一个 npm 包到当前项目。
   - `npm install -g <package>`:全局安装一个 npm 包。
   - `npm uninstall <package>`:卸载项目中的一个 npm 包。
   - `npm update`:更新项目中所有已安装的 npm 包。
   - `npm list`:列出项目中安装的 npm 包及其依赖。
   - `npm run <script>`:运行 `package.json` 文件中定义的脚本。

3. **npx**:
   - 是 npm 的一个工具,用于执行 Node 包的二进制文件。
   - `npx <package>`:执行 npm 包的二进制文件,无需全局安装该包。

4. **nodemon**:
   - 是一个开发工具,用于监视服务器端文件的变化并自动重启服务器。
   - `npx nodemon <file>` 或 `npm install -g nodemon` 后使用 `nodemon <file>`。

5. **express**:
   - 是一个流行的 Node.js Web 应用框架,用于快速构建 RESTful API 和 Web 应用。
   - `npm install express`:安装 Express 框架。
   - 创建一个基本的 Express 服务器通常看起来像这样:
     ```javascript
     const express = require('express');
     const app = express();
     const port = 3000;
     app.get('/', (req, res) => {
       res.send('Hello World!');
     });
     app.listen(port, () => {
       console.log(`Server running at http://localhost:${port}`);
     });
     ```

6. **mkdir & rmdir**:
   - `mkdir <dir>`:在命令行中创建一个新目录。
   - `rmdir <dir>`:删除一个空目录。

7. **fs**:
   - Node.js 的 `fs` 模块提供了文件系统操作的 API。
   - 例如,`const fs = require('fs');` 用于引入文件系统模块。

8. **process**:
   - `process.argv`:获取命令行参数的数组。
   - `process.env`:包含用户环境的变量。

9. **console**:
   - `console.log`、`console.error`、`console.warn` 等用于在控制台输出信息。

10. **http**:
    - Node.js 的 `http` 模块用于创建 HTTP 服务器和客户端。
    - 例如,创建一个简单的 HTTP 服务器:
      ```javascript
      const http = require('http');
      const server = http.createServer((req, res) => {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/html');
        res.end('<h1>Hello World</h1>');
      });
      server.listen(3000);
      ```

这些命令和模块是 Node.js 开发中的基础,通过它们,你可以开始构建自己的服务器端应用程序。此外,还有许多其他高级功能和第三方模块,可以根据项目需求进行探索和使用。

03-28 10:55