初学者的 Express 基础知识
在为期12周的全栈训练营里,你必须学得快。因为我之前已经熟悉HTML、CSS和JavaScript,所以在快速学习的过程中,我通常能够把这些主题分清楚。然而,一旦转到后端,我的大脑就仿佛进入了狂野的西部。
Node、Express、Sequelize,它们在后端分别做了什么?“fs”是原生包还是安装包?我需要引入什么?我花了很多时间只是从课堂活动和以前的家庭作业中复制粘贴,而不是完全理解我所编写代码的概念。我让代码运行起来了,但并不真正理解它为什么有效。
于是我决定回过头来,认真研究我的代码,弄清楚每一行代码的功能,以及它是否与 Node、Express 或我的数据库(使用 Sequelize 或 MongoJS)兼容。这给了我很大的启发,让我最终明白了一切。
如果你也遇到类似的情况,我强烈建议你回过头去仔细研究你的代码,分析每一行代码的功能。这样就不用再纠结 REST 和 CRUD 的问题了!调试也变得轻松多了!这不再是“找出工作代码和不工作代码之间的区别”的游戏了。我终于能够真正地读懂错误,并理解可能出错的地方了。
作为本练习的一部分,我创建了一个 Express 基本功能列表。Express 是一个包,它允许你建立与服务器的连接并写入路径来处理传入的请求。
以下是你应该在 Express 中掌握的六件事,大多数情况下,每个运行 Express 的应用程序都应该包含这些功能。所有这些功能都可以写在一个 server.js 文件中,或者可以将路由模块化到单独的 .js 文件中,然后在 server.js 中引用。
安装并需要 Express
Express 不是 Node 的原生软件包,因此必须安装。由于您需要确保它包含在 Node 模块中,因此请确保在本地安装它,然后在服务器中引用它。
- 在项目文件夹中,在 Node 中运行“npm install express”
npm install express
- 在您的 server.js 文件中插入“const express = require("express");”
const express = require("express");
将 express 赋值给 app 变量
- 在 server.js 文件中插入“const app = express();”。现在,您可以使用“app”来引用 express 实例(也就是您正在使用的服务器)。
const app = express();
设置应用程序监听指定端口
-
插入“app.listen(PORT, function () { console.log("应用程序在端口上运行" + PORT)})
-
PORT 可以直接指定,也可以分配为变量,例如“const PORT = process.env.PORT || 3000;”
const PORT = process.env.PORT || 3000;
app.listen(PORT, function() {
console.log("App running on port" + PORT);
});
设置应用程序以处理 JSON 和 URLencoded 请求的数据解析
- 根据您的 API 所接收的请求类型,您需要启用中间件来解析 JSON 或 URL 编码的请求。您可以使用 app.use() 来实现。
// handle URLencoded requests
app.use(express.urlencoded({ extended: true }));
// handle JSON requests
app.use(express.json());
启用静态文件自动返回
- 设置应用程序自动返回静态文件,而无需为每个文件编写特定的路由(例如,包含 HTML、CSS 和客户端 JS 文件的“公共”文件夹)
app.use(express.static("public"));
处理 REST 请求
编写路由来处理针对路径(GET、POST、PUT、DELETE)的 REST 请求。每个路由都需要一个回调函数,用于说明如何处理请求以及(如果适用)响应。我已编写了 GET 和 POST 回调函数的示例,因为它们是最常见的。
得到
app.get("path, function (req, res) {
/// res.send will return the string back to the client
res.send("Hello World!")
// res.sendFile will return the file back to the client
// check out the 'path' package on npm to avoid relative path issues
res.sendFile(path.join(__dirname, "../public/index.html"))})
邮政
app.post("path", function (req, res) {
const request = req.body;
...
// handle database update
}).then(function (response) {
res.json(response)
})
放
app.put("path, function (req, res) {
...
// handle database update
}).then(function (response) {
res.json(response)
})
删除
app.delete("path", function (req, res) {
...
// handle database update
}).then(function (response) {
res.json(response)
就是这样!只要你理解了这些函数的工作原理,你就对 Express 有了基本的了解,并且可以为全栈应用程序搭建服务器了。如果你有任何问题或建议,请告诉我!
文章来源:https://dev.to/ceceliacreates/express-basics-for-beginners-3e00