error: column "admin" does not exist but it does exists
error: column "admin" does not exist but it does exists
我正在使用 postgresql 和 expressjs 创建 api。
动机是 return boolean 和 msg 在点击 api 之后。
我的用户名是 admin.
下面是api
router.get("/", (request, response) => {
console.log(request.body.name, request.body.password);
dbpool
.connect()
.then(client => {
client
.query(
`SELECT checkUsername(${request.body.name},${request.body.password});`
)
.then(res => {
client.release();
console.log("logged in");
response.send(res.rows);
})
.catch(err => {
console.log(err);
});
})
.catch(err => {
console.log("Check" + err);
});
});
Api 正在使用邮递员以 json 格式从正文中获取请求。
这是我在 api 中调用的数据库函数。
CREATE OR REPLACE
FUNCTION checkUsername (
Iusername VARCHAR,
Iuserpassword VARCHAR
)
RETURNS BOOLEAN
LANGUAGE sql
AS $$
SELECT EXISTS(
SELECT *
FROM "users"
WHERE username=iusername
AND user_password=Iuserpassword
);
$$;
点击邮递员的 api 后,我收到错误:“admin”列不存在
问题已解决。我错过了 '' 引号
如果您查看我的路由器查询方法,我使用了模板字符串
.query(
`SELECT checkUsername(${request.body.name},${request.body.password});`
)
上面我将参数传递给数据库函数。
当每个参数传递时,我们需要在它们周围加上引号。
所以查询应该如下所示
.query(
`SELECT checkUsername('${request.body.name}','${request.body.password}');`
)
就像我们在数据库中调用函数一样。
SELECT "checkUsername"('param','param');
我们必须在我们的查询方法中准确模仿。
我正在使用 postgresql 和 expressjs 创建 api。 动机是 return boolean 和 msg 在点击 api 之后。 我的用户名是 admin.
下面是api
router.get("/", (request, response) => {
console.log(request.body.name, request.body.password);
dbpool
.connect()
.then(client => {
client
.query(
`SELECT checkUsername(${request.body.name},${request.body.password});`
)
.then(res => {
client.release();
console.log("logged in");
response.send(res.rows);
})
.catch(err => {
console.log(err);
});
})
.catch(err => {
console.log("Check" + err);
});
});
Api 正在使用邮递员以 json 格式从正文中获取请求。
这是我在 api 中调用的数据库函数。
CREATE OR REPLACE
FUNCTION checkUsername (
Iusername VARCHAR,
Iuserpassword VARCHAR
)
RETURNS BOOLEAN
LANGUAGE sql
AS $$
SELECT EXISTS(
SELECT *
FROM "users"
WHERE username=iusername
AND user_password=Iuserpassword
);
$$;
点击邮递员的 api 后,我收到错误:“admin”列不存在
问题已解决。我错过了 '' 引号 如果您查看我的路由器查询方法,我使用了模板字符串
.query(
`SELECT checkUsername(${request.body.name},${request.body.password});`
)
上面我将参数传递给数据库函数。 当每个参数传递时,我们需要在它们周围加上引号。 所以查询应该如下所示
.query(
`SELECT checkUsername('${request.body.name}','${request.body.password}');`
)
就像我们在数据库中调用函数一样。
SELECT "checkUsername"('param','param');
我们必须在我们的查询方法中准确模仿。