我有一个名为getConnectedUser的通用函数,它具有一些逻辑来检索服务器组件中连接的用户,并在没有用户连接的情况下调用redirect。为了简单性和一致性,我想在我的API路由处理程序中使用相同的函数,但不是重定向它应该抛出错误。你知道是否有一种方法可以从函数体内部确定它是从服务器组件还是路由处理程序调用的吗?当然,我可以创建一个变量,或者给函数添加一个参数,但这会更冗长,更容易出错。
getConnectedUser
redirect
w80xi6nr1#
1-可以定义两个不同的函数。
async function getConnectedUserOnServerComponent(){} async function getConnectedUserOnApiRoute()
字符串2-您可以将布尔标志传递给函数
async function getConnectedUser(, ,onRoute=false){}
型当您在Route上调用该函数时,请使用true标志调用该函数
true
getConnectedUser(arg1,arg2,true)
型根据布尔标志,您可以编写逻辑。3-如果您在路由上,则可以访问req对象。
req
async function getConnectedUser(arg1,arg22,req){ if(req){ // you are on api route } }
型
1条答案
按热度按时间w80xi6nr1#
1-可以定义两个不同的函数。
字符串
2-您可以将布尔标志传递给函数
型
当您在Route上调用该函数时,请使用
true
标志调用该函数型
根据布尔标志,您可以编写逻辑。
3-如果您在路由上,则可以访问
req
对象。型