GET端点返回404

时间:2020-11-07 03:09:18

标签: node.js postgresql express

我正在尝试从我的Postgres数据库中检索特定的用户数据。

此代码可检索所有用户数据:

app.get("/employees", async (req, res) => {
  try {   
    const allEmployees = await pool.query("SELECT * FROM employees");
    res.json(allEmployees.rows);
  } catch (err) {
    console.error(err.message);
  }
});

但是此代码不是要检索一个用户的。它在邮递员上返回404。

app.get("/employees/:id", async (req, res) => {
  try {
    const { id } = req.params;
    const oneEmployee = await pool.query("SELECT * FROM employees WHERE emp_id = $1", [
      id
    ]);

    res.json(oneEmployee.rows[0]);
  } catch (err) {
    console.error(err.message);
  }
});

我似乎不知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

@AnujPancholi更新。我使用了node-postgres查询文档,并如下更改了我的代码:

app.get("/employees/:emp_id", async (req,res) => {
 const query = {
   // give the query a unique name
   name: 'fetch-user',
   text: 'SELECT * FROM employees WHERE emp_id = $1'    
 }

 query.values = [req.params.emp_id];

 // callback
 await pool.query(query, (err, response) => {
   if (err) {
     console.log(err.stack);
   } else {
     res.json(response.rows);
   }
 });
});

然后在邮递员上将我的端点连接到GET路线

http://localhost:3000/employees/4

我没有在params部分输入任何值。感谢您为我指明了正确的方向,尤其是在邮递员方面。