在这种情况下使用 GET 而不是 POST 的原因是什么?
What is the reason for using GET instead of POST in this instance?
我正在浏览 pg-promise-demo 的 Javascript 演示,我对路线 /api/users/:name
有疑问。
运行 这在本地有效,用户已输入到数据库中,但是这不是 POST 的原因吗?使用 GET 在数据库中创建用户是否有某种优势?
// index.js
// --------
app.get('/api/users/:name', async (req, res) => {
try {
const data = (req) => {
return db.task('add-user', async (t) => {
const user = await t.users.findByName(req.params.name);
return user || t.users.add(req.params.name);
});
};
} catch (err) {
// do something with error
}
});
为简洁起见,我将省略 t.users.findByName(name)
和 t.users.add(name)
的代码,但它们使用 QueryFile
来执行 SQL 命令。
编辑:将 link 更新为 pg-promise-demo。
The reason is explained 就在该文件的顶部:
IMPORTANT:
Do not re-use the HTTP-service part of the code from here!
It is an over-simplified HTTP service with just GET handlers, because:
- This demo is to be tested by typing URL-s manually in the browser;
- The focus here is on a proper database layer only, not an HTTP service.
我认为很明显您不应该遵循演示的 HTTP 实现,而应该只遵循它的数据库层。该演示的目的是教您如何在大型应用程序中组织数据库层,而不是如何开发 HTTP 服务。
我正在浏览 pg-promise-demo 的 Javascript 演示,我对路线 /api/users/:name
有疑问。
运行 这在本地有效,用户已输入到数据库中,但是这不是 POST 的原因吗?使用 GET 在数据库中创建用户是否有某种优势?
// index.js
// --------
app.get('/api/users/:name', async (req, res) => {
try {
const data = (req) => {
return db.task('add-user', async (t) => {
const user = await t.users.findByName(req.params.name);
return user || t.users.add(req.params.name);
});
};
} catch (err) {
// do something with error
}
});
为简洁起见,我将省略 t.users.findByName(name)
和 t.users.add(name)
的代码,但它们使用 QueryFile
来执行 SQL 命令。
编辑:将 link 更新为 pg-promise-demo。
The reason is explained 就在该文件的顶部:
IMPORTANT:
Do not re-use the HTTP-service part of the code from here!
It is an over-simplified HTTP service with just GET handlers, because:
- This demo is to be tested by typing URL-s manually in the browser;
- The focus here is on a proper database layer only, not an HTTP service.
我认为很明显您不应该遵循演示的 HTTP 实现,而应该只遵循它的数据库层。该演示的目的是教您如何在大型应用程序中组织数据库层,而不是如何开发 HTTP 服务。