前言
webschool-express 是一个基于 Express.js 开发的 npm 包,致力于帮助开发者快速搭建 Node.js 服务器,并提供了一些常用的中间件和模块,可用于从零开始建造一个完整的服务器端应用程序。本文将介绍 webschool-express 的使用方法,对初学者和正在学习后端开发的同学来说,可以作为一个不错的入门指南。
安装
在开始使用之前,需要先安装 Node.js 和 npm,并在项目文件夹中使用以下命令进行安装:
$ npm install webschool-express
快速上手
webschool-express 的使用非常简单,只需引入模块,创建一个 Express app 对象,然后可以使用 app 对象启动服务器。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- -------- ---
如上述代码所示,先引入 webschool-express 模块,然后创建一个 Express app 对象。我们可以通过 app 对象使用各种方法将路由、中间件等加入到应用程序中。
路由
在 Express 中,路由被定义为一个可以处理请求的方法、URI 和一组特定动作的组合。我们可以使用 app 对象定义路由,例如:
-- -------------------- ---- ------- ------------ ----- ---- -- - -------------- -------- --- ------------------ ----- ---- -- - ---------------- - --- -------- --- --------------------- ----- ---- -- - ---------------- ---- ---- -- -------------------- --- ------------------------ ----- ---- -- - ---------------- ---- ---- -- -------------------- ---
上述代码中分别使用 app.get
、app.post
、app.put
和 app.delete
定义路由,它们分别对应 HTTP 请求中的 GET、POST、PUT 和 DELETE 请求。其中 /users/:id
路由中的冒号表示参数,req.params
可以获取到该参数的值。
中间件
中间件是处理请求、响应对象以及应用程序中的业务逻辑的函数。我们可以使用 app 对象添加和使用中间件,例如:
app.use(express.json()); // 解析 JSON 格式请求体 app.use(express.urlencoded({ extended: false })); // 解析 urlencoded 格式请求体 app.use(express.static("public")); // 静态文件托管,将 public 目录下的文件作为静态资源
在上述示例中,使用了三个中间件,分别对应了解析客户端请求中的 JSON 和 urlencoded 格式的数据和将 public 目录下的文件作为静态资源。
我们还可以自定义中间件来完成特定的任务,例如:
const logger = (req, res, next) => { console.log(`${req.method} ${req.url} at ${new Date().toISOString()}`); next(); }; app.use(logger);
在这个例子中,定义了一个名为 logger 的中间件,会输出每一个请求的 HTTP 方法、URL 和时间戳。注意,中间件函数必须调用 next() 方法,以便让请求和响应继续传递到下一个中间件。
连接数据库
在实际项目开发中,经常需要和数据库进行交互,除此之外还有许多其他的数据存储方式。在使用时,只需要引入相应的模块,并配置连接参数即可。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- --------- - ----- ------- ----- ----------------- ---------- - ---------------- ----- ------------------- ----- --------------- ----- ----------------- ------ -- ----- -- - -- ----- - --------------------- -- ------- -- ----------- ---------------- - ---------------------- -- ----------- - --
上述示例使用了 Mongoose 模块,连接了 MongoDB 数据库。其中 MONGO_URI
是数据库的 URL,需要相应修改。Mongoose 还提供了很多强大的功能,例如定义模型、存储数据等,可以配合使用。
工程化实践
在实际项目中,我们还需要使用一些工具来增强开发体验和代码质量。下面介绍一些常见的工具和使用方法。
ESLint
ESLint 是一个用于检测 JavaScript 代码中的语法错误和代码风格问题的工具。它可以在编写代码时提供及时的建议,帮助我们避免一些常见的错误和编码问题。可以先安装 ESLint:
$ npm install --save-dev eslint
然后在项目根目录下创建 .eslintrc.js 文件,进行配置:
-- -------------------- ---- ------- -------------- - - ---- - ----- ----- ------- ----- -- -------- ----------------------- -------------- - ------------ --- -- ------ --- --
在该文件中,我们定义了代码运行的环境、ESLint 规则基础配置以及特殊的解析配置。
Prettier
Prettier 是一个代码格式化工具,能够强制执行一致的代码风格,帮助我们保持代码清晰有序。安装方法如下:
$ npm install --save-dev prettier
然后在项目根目录下创建 .prettierrc.js 文件,进行配置:
module.exports = { trailingComma: "es5", tabWidth: 2, semi: true, singleQuote: false, };
在该文件中,我们为 Prettier 配置了一些常见的选项,例如缩进、使用分号、单引号等。
Husky
Husky 是一个基于 Git hooks 的工具,能够在 Git 提交前执行脚本。我们可以使用 Husky 来自动化代码检测、格式化、测试等操作,避免漏检和人为错误。安装方法如下:
$ npm install --save-dev husky
然后在 package.json 文件中添加一些配置项:
{ "husky": { "hooks": { "pre-commit": "eslint . && prettier . --check && npm test" } } }
在这个例子中,我们定义了 pre-commit 钩子,将在每次 commit 操作前执行 ESLint 和 Prettier 的检测,并运行 npm test 命令来执行测试。
总结
本文介绍了如何使用 webschool-express 创建一个 Node.js 服务器,其中包括了路由、中间件、数据库操作和工程化实践等方面。通过实践,我们可以更深入地理解后端开发的工作方式,希望这篇文章对您有所帮助。完整代码可参考 webschool-express-demo。
参考资料
- Express.js 官方文档:https://expressjs.com/
- Mongoose 官方文档:https://mongoosejs.com/docs/
- ESLint 官方文档:https://eslint.org/docs/user-guide/configuring/
- Prettier 官方文档:https://prettier.io/docs/en/configuration.html
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671068dd3466f61ffddc9