我正在浏览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命令。
编辑:更新指向pg-promise-demo的链接。
答案 0 :(得分:2)
The reason is explained就在该文件的顶部:
重要提示:
请勿在此处重复使用代码的HTTP服务部分!
这是一个过于简化的HTTP服务,仅具有GET处理程序,原因是:
- 该演示将通过在浏览器中手动键入URL-s进行测试;
- 这里的重点仅是适当的数据库层,而不是HTTP服务。
我认为很明显,您不应该遵循该演示的HTTP实现,而应该遵循其数据库层。该演示的目的是教您如何在大型应用程序中组织数据库层,而不是如何开发HTTP服务。