小编Bee*_*man的帖子

如果我在嵌套查询函数中设置它,为什么我的 express-session 变量没有被保存?

以下代码处理对我的应用程序登录页面的发布请求。

如果登录凭据正确,它会将is_logged_in会话变量设置true为以及user_id从数据库获取的用户 ID。

在获取凭据的查询中,如果一切顺利,我还有第二个查询来获取学生 ID。由于一些奇怪的原因,当我尝试设置req.session.student_id变量并记录我没有看到的会话对象时,它只设置了从第二个查询函数外部设置的is_logged_inuser_id变量。

router.post('/login', (req, res) => {
    con.query("SELECT id, username, password FROM authorizedusers;", 
      (err, result) => {
        if(err) throw err;

        for(var i = 0; i < result.length; i++) {
            if(req.body.username === result[i].username 
               && req.body.password === result[i].password){

            con.query(`SELECT id FROM students WHERE user_id = 
              ${result[i].id};`, (err, result) => {

                    if(err) throw err;
                    
                    req.session.student_id = result[0].id;
                });
                
                req.session.is_logged_in = true;
                req.session.user_id = result[i].id;
                return res.redirect('/');
            }

        } …
Run Code Online (Sandbox Code Playgroud)

session-variables node.js express

3
推荐指数
1
解决办法
124
查看次数

范围“^4”和“^4..”之间有什么区别?

我试图从我在程序中使用的字符串中获取子字符串,如下所示:

mystring.Substring(mystring.Length - 4)
Run Code Online (Sandbox Code Playgroud)

Visual Studio IntelliSense 建议我使用索引和范围运算符,如下所示:

mystring[^4..]
Run Code Online (Sandbox Code Playgroud)

我浏览了这里的文档,似乎使用 justmystring[^4]就可以正常工作。为什么 IntelliSense 建议使用..其中的额外内容,添加它有什么好处吗?

c# range

-1
推荐指数
1
解决办法
114
查看次数

如何正确更改 github 中过去几次提交的提交作者?

在过去的几天里,我使用了另一台笔记本电脑,我设置了 git 并登录,但我不小心使用了错误的电子邮件地址的用户名。

今天,我注意到过去几天的提交没有显示在我的 github 个人资料仪表板上,所以检查了发生的情况,发现我使用了错误的电子邮件登录。

我尝试了几种不同的方法来修复它,但没有一个起作用。

1.

git rebase -i -p <The last commit with the good email>

然后对于每个提交。

git commit --amend --author="good name <good email>" --no-edit
git rebase --continue
Run Code Online (Sandbox Code Playgroud)

它不是仅仅更改提交的作者,而是使用我的好电子邮件进行了新的提交,但没有更改旧的提交。

2.

git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "incorrect@email" ]; then
     GIT_AUTHOR_EMAIL=correct@email;
     GIT_AUTHOR_NAME="Correct Name";
     GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
     GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all
Run Code Online (Sandbox Code Playgroud)

正如这里所看到的,但它没有做任何事情......

3. 在其中一个答案中,有人提到我应该使用与我使用的相同的命令。

git rebase -i -p <The last commit with the good email>

但没有“-p”。我尝试过,但它也进行了新的提交,并且没有将旧的提交与旧的日期一起保留。


因此,我需要帮助获取我历史记录中的所有新提交并修复旧提交以获得良好的电子邮件。

git commit

-2
推荐指数
1
解决办法
7103
查看次数

标签 统计

c# ×1

commit ×1

express ×1

git ×1

node.js ×1

range ×1

session-variables ×1