面试篇:(十二)Node.js 与后端基础 - 2024 年全栈面试指南

面试篇:(十二)Node.js 与后端基础 - 2024 年全栈面试指南

在这里插入图片描述

1. 什么是 Node.js?它有什么特点?

回答:Node.js 是一个基于 Chrome V8 引擎构建的 JavaScript 运行时,它让你可以用 JavaScript 编写服务器端的应用程序。Node.js 的主要特点包括:

  • 异步和事件驱动:Node.js 使用非阻塞的 I/O 操作,意味着当执行某个操作时,不需要等待它完成就可以进行其他操作。
  • 高性能:由于使用了 V8 引擎,Node.js 的性能非常高,适合处理大量并发请求。
  • 单线程:Node.js 是单线程的,但通过事件循环机制可以处理多个连接,适合 I/O 密集型的应用。

2. 如何安装 Node.js?

回答:安装 Node.js 非常简单。可以去 Node.js 的官方网站 nodejs.org 下载对应操作系统的安装包,按照提示安装即可。安装完成后,可以在命令行中使用以下命令检查版本:

node -v
npm -v

这里 node 是 Node.js 的命令行工具,npm 是 Node.js 的包管理器。


3. 什么是 npm?它的作用是什么?

回答:npm(Node Package Manager)是 Node.js 的包管理工具,用于管理 JavaScript 的库和工具。使用 npm,你可以方便地安装、更新和删除项目依赖包。

示例:

要安装一个库,比如 express,只需在命令行中运行:

npm install express

安装后,express 库会被添加到项目的 node_modules 文件夹中,并在 package.json 文件中记录依赖。


4. 如何创建一个简单的 Node.js 服务器?

回答:创建一个简单的 Node.js 服务器很容易。以下是一个基本的示例:

const http = require('http');

const server = http.createServer((req, res) => {
   
   
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(3000, () => {
   
   
  console.log('Server running at http://localhost:3000/');
});

在上述代码中,http.createServer 创建了一个新的 HTTP 服务器,当访问时返回 “Hello, World!” 的响应。服务器在 3000 端口监听请求。


5. 什么是 Express.js?它有什么优势?

回答:Express.js 是一个基于 Node.js 的轻量级 web 应用框架,用于快速构建 web 应用和 API。它的优势包括:

  • 简洁的 API:Express 提供了简单易用的路由和中间件系统,使得开发变得更加方便。
  • 丰富的插件:Express 有很多社区支持的中间件,可以快速集成各种功能,如用户认证、数据处理等。
  • 高性能:Express 是构建在 Node.js 之上的,保持了高性能的特点。

6. 中间件在 Express.js 中是什么?

回答:中间件是 Express.js 的核心概念之一,它是一个函数,可以访问请求对象(req)、响应对象(res)和下一个中间件函数(next)。中间件可以执行以下操作:

  • 执行代码
  • 修改请求和响应对象
  • 结束请求-响应循环
  • 调用下一个中间件

示例:

app.use((req, res, next) => {
   
   
  console.log('Request received!');
  next(); // 调用下一个中间件
});

7. 如何处理 Node.js 中的错误?

回答:在 Node.js 中,错误处理非常重要。可以通过以下几种方式处理错误:

  • try-catch:在异步函数中使用 try-catch 处理同步代码中的错误。
  • Promise.catch:在 Promise 中使用 .catch() 来处理错误。
  • 错误中间件:在 Express 中,定义一个错误处理中间件函数来处理应用中的错误。

示例:

app.use((err, req, res, next) => {
   
   
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

8. 什么是 RESTful API?

回答:RESTful API 是一种基于 REST(Representational State Transfer)架构风格的 API。它通过 HTTP 协议提供了一种简单且标准化的方式来访问和操作资源。RESTful API 通常使用以下 HTTP 方法:

  • GET:获取资源
  • POST:创建资源
  • PUT:更新资源
  • DELETE:删除资源

9. 如何连接到 MongoDB 数据库?

回答:可以使用 mongoose 库来连接和操作 MongoDB。以下是一个基本示例:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/mydatabase', {
   
    useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('MongoDB connected!'))
  .catch(err => console.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈探索者chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值