小编idl*_*age的帖子

通过重定向将数据从 Express 发送到 React

我有两个链接的应用程序:一个在端口 5000 上充当服务器(express),另一个在端口 3000 上充当客户端(React)。我想将数据从服务器发送到客户端 - 到特定页面.

流动:

  1. 用户点击“登录” localhost:3000
  2. 它们被重定向到一个外部站点,该站点返回一个代码并重定向到 localhost:5000/api/callback
  3. router.get('/api/callback')根据代码获取授权令牌,然后重定向到localhost:3000/dashboard(通过 React Router 显示仪表板组件的位置)
  4. 仪表板通过从服务器获取令牌来将令牌保存在其状态
  5. 然后仪表板将调用服务器以获取基于令牌的其他数据

我意识到这很复杂,但这基本上是我遇到麻烦的地方;我不完全了解如何让 Express 和 React 正确通信。

在 server.js 中:

router.get('/callback', async (req, res) => {
    const code = req.query.code;
    const token = await getAuthorizationTokenFromExternalSite(code);

    // Poor attempt to persist data
    res.cookie('token', token);

    // Poor attempt to let the user see this URL
    res.redirect("http://localhost:3000/dashboard");
});

router.get('/dashboard', (req, res) => {
    res.send({ token: req.cookies['token'] });
});
Run Code Online (Sandbox Code Playgroud)

客户端/src/App.js

class App extends Component { …
Run Code Online (Sandbox Code Playgroud)

node.js express reactjs react-router

4
推荐指数
1
解决办法
3747
查看次数

在mysql查询中使用变量作为列名

我试图改变这个:

"SELECT username FROM $table WHERE username='$newName'"
Run Code Online (Sandbox Code Playgroud)

进入:

"SELECT $column FROM $table WHERE $column='$newName'"
Run Code Online (Sandbox Code Playgroud)

但是当我使用or die()它时,我得到一个错误,说明附近有不正确的语法WHERE username='someNameHere'.替换列名的正确方法是什么,假设这是错的?

编辑:代码就是这个.值应该是正确的,因为我没有看到错误中的任何错误.

$sql = "SELECT $column FROM $table WHERE $column='$newName'";
$result = mysql_query($sql) or die( mysql_error());
Run Code Online (Sandbox Code Playgroud)

php mysql

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

相当于Git在perforce中的"修改最后提交"

Perforce新手.在提交我的更改列表后,我意识到我错过了一件不值得写提交消息的小事.因此,我用完全相同的消息提交了这个更改,认为它与修改我在Git中的最后一次提交大致相同.显然它不是,因为这个荒谬的微小变化的新版本被创建了.

现在我已经提交了两个提交,有没有办法合并两个提交(在完全相同的文件上)?我下次怎么处理这种情况?

git perforce

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

在嵌套 if 语句后继续 elif?

如果嵌套的 if 语句不满足条件,我如何继续执行外部 if 语句?例如。我有这个(非常不切实际的)例子:

a = 2

if( a > 1 ):
    if( a == 3 ):
        print "yes"
elif( a == 2 ):
    print "yes"
Run Code Online (Sandbox Code Playgroud)

我想要接下来检查 == 2 。我该怎么做?

(我需要检查嵌套的 if 中有多个条件,所以我不想在那个外部 if 中有一大串和/或语句。我也有多个 elif 语句,所以我不希望将所有 elif 混合到该嵌套的 elif 下。)

更深入的例子:

b = 8

if( a > 1 ):
    if( b == 3 ):
        doSomething()
    elif( b == 4 ):
        doSomethingElse()
    elif( b == 5 ):
        more()
elif( -1 <= a <= 1 ):
    asd()
elif( a < …
Run Code Online (Sandbox Code Playgroud)

python if-statement

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

为什么'返回自我'返回无?

我正试图获得链中的顶级节点getTopParent().当我打印出来时self.name,它确实打印出父实例的名称; 但是,当我返回时self,它返回None.为什么是这样?

class A:
    def __init__( self, name ):
        self.name = name
        self.owner = None
    def setChild( self, l ):
        l.owner = self
    def getTopParent( self ):
        if( self.owner == None ): # None == top parent
            print( "Got top: %s" % self.name )
            return self
        else:
            print( "checking %s" % self.name )
            self.owner.getTopParent()

a = A( "parent" )
b = A( "child1" )
c = A( "child2" )
d = A( "child3" ) …
Run Code Online (Sandbox Code Playgroud)

python return-value

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

警告:格式'%d'需要类型'int*',但参数2的类型为'int**'

C新手,我有这个功能:

void getNum(int *n) {
  scanf("%d", &n);
}
Run Code Online (Sandbox Code Playgroud)

在主要:

int main() {
  int someNum;
  getNum(&someNum);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个错误的'int**'部分究竟来自哪里,还有其他问题我如何传递内容?

c pointers scanf

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