我正在学习编码,并且正在尝试使用Express在节点中构建一个用于执行Web应用程序(我认为这是正确的措辞)。
我在postgresql中有一个表('users'),它存储了user_id,email和密码。
当用户登录到网站时,我想循环遍历该表并确保该电子邮件存在且与密码匹配,然后用户可以登录并在他们登录时 - 他们分配了他们唯一的user_id并调出他们之前的做清单..如果可能的话,我想加入knex。
我不知道如何做到这一点,并希望任何提示/指向正确的方向。
谢谢
首先尝试基本的东西
SELECT
user_id
FROM users
WHERE
email = _your_user_email
AND password = _your_user_password;
如果您返回的结果包含user_id或您想要返回的任何内容,则该用户存在。您可以通过检查电子邮件进一步扩展,并让用户知道电子邮件存在但密码不正确等。首先尝试使用简单方法,看看这是否符合您的需要。
首先,我建议你为你的id
表命名你的users
字段为id
。最佳做法是将id
字段命名为id
,将引用列命名为<tablename>_id
(例如,表格clothes.id
iter和clothes.user_id
的唯一标识符 - 表格users
的外键)。
其次,强烈建议不要将密码作为原始数据存储在数据库中(出于安全原因)。将用户密码保存为散列数据是一种常见做法。例如,看看bcrypt包。
要选择用户(在数据库方面没有“循环”这个东西,它被称为“查询”)你需要创建一个类似的查询
select
id,
email,
<any_other_field_you_need>
from
users
where
email = '[email protected]'
and password = 'your password hash'
就knex
而言,它可以写成
knex('users')
.select(['id', 'email', '<any_other_field_you_need>'])
.where('email', '[email protected]')
.where('password', 'your password hash')
您可以从快递body获得的查询参数(电子邮件,密码)。确保使用POST HTTP方法发送请求并将数据作为正文传递。
如果你不知道express
- 这是一个npm package。它有助于创建Web服务。他们的官方网站上有一个问候世界guide。随意检查出来。或者只是简单地谷歌“为初学者表达教程”,有很多很棒的互联网教程。它很受欢迎。