以下是一些关于 Express 的面试题:
1. 什么是 Express?它解决了什么问题?
Express 是一个基于 Node.js 的 Web 应用框架,它简化了 Web 应用的开发流程。它提供了一系列易用的接口和中间件,以便更快速、更容易地构建 Web 服务器和 API。
2. 如何在 Express 中创建一个基本的路由?
在 Express 中创建一个基本的路由,可以使用以下代码:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
3. 如何在 Express 中处理 URL 参数?
在 Express 中处理 URL 参数,可以通过 req.params 对象访问。例如:
app.get('/users/:userId', (req, res) => {
const userId = req.params.userId;
res.send(`User ID: ${userId}`);
});
4. 如何在 Express 中处理 POST 请求和请求体?
在 Express 中处理 POST 请求和请求体,首先需要安装 body-parser 中间件:
npm install body-parser
然后使用中间件解析请求体:
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
// 处理登录逻辑
});
5. 请解释 Express 中的中间件。如何创建和使用自定义中间件?
中间件是 Express 应用程序中处理请求和响应的函数。创建自定义中间件的示例:
function logRequest(req, res, next) {
console.log(`${req.method} ${req.url}`);
next();
}
app.use(logRequest);
6. 什么是静态文件服务?如何使用 Express 提供静态文件?
静态文件服务是指提供诸如 HTML、CSS、JavaScript 等静态文件的 Web 服务器。在 Express 中,可以使用 express.static 中间件提供静态文件:
app.use(express.static('public'));
7. 请解释 Express 中的错误处理。如何创建自定义错误处理中间件?
Express 中的错误处理包括捕获错误、处理错误和返回适当的响应。创建自定义错误处理中间件的示例:
function errorHandler(err, req, res, next) {
console.error(err);
res.status(500).send('Internal Server Error');
}
app.use(errorHandler);
8. 如何在 Express 中实现用户身份验证和授权?
在 Express 中实现用户身份验证和授权,通常需要使用第三方库,例如 passport。这些库提供了一系列策略和中间件,用于处理不同类型的身份验证和授权。
9. 在 Express 中,如何组织路由和控制器以实现模块化?
在 Express 中,可以通过将路由和控制器分离到不同的模块中来实现模块化。例如,在 routes 目录中创建路由模块,然后在 controllers 目录中创建相应的控制器模块。
10. 如何在 Express 中使用模板引擎?请列举一些常用的模板引擎。
在 Express 中,可以使用模板引擎来生成动态 HTML 内容。一些常用的模板引擎包括 EJS、Pug(原名 Jade)和 Handlebars。要在 Express 中使用模板引擎,需要安装相应的库,然后在应用程序中配置模板引擎。例如,使用 EJS:
const ejs = require('ejs');