在这种情况下使用GET而不是POST的原因是什么?

时间:2019-09-18 02:09:31

标签: node.js express pg-promise

我正在浏览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的链接。

1 个答案:

答案 0 :(得分:2)

The reason is explained就在该文件的顶部:

  

重要提示:

     

请勿在此处重复使用代码的HTTP服务部分!

     

这是一个过于简化的HTTP服务,仅具有GET处理程序,原因是:

     
      
  1. 该演示将通过在浏览器中手动键入URL-s进行测试;
  2.   
  3. 这里的重点仅是适当的数据库层,而不是HTTP服务。
  4.   

我认为很明显,您不应该遵循该演示的HTTP实现,而应该遵循其数据库层。该演示的目的是教您如何在大型应用程序中组织数据库层,而不是如何开发HTTP服务。