使用打字稿时变得不确定

时间:2019-01-09 19:48:20

标签: node.js typescript oauth-2.0

我正在尝试使用打字稿实现oauth2-server。 并且需要定义所使用的模型并将其分配给Oauth2Server的构造函数。但是在运行时获取def wrapIt(m: Map[String, Any]): Map[String, Any] = m.map { case (k, v: Map[String, Any]) => k -> List(wrapIt(v)) case (k, v: List[Map[String, Any]]) => k -> v.map(m => m.map { case (l, p: Map[String, Any]) => l -> List(wrapIt(p)) case lp => lp }) case kv => kv } 模型。

我定义了一组这样的功能

undefined

并像这样导出它们:

async function getClient(clientId:string, clientSecret:string) {
    try {  
        let dbClient = await OAuthClient.findById(clientId)
        console.log(dbClient)
        let client = toClientDTO(dbClient);
        if(!client){
            console.log("client not found");
            return false
        }
        if(clientSecret && clientSecret !== client.secret){
           throw new Error("client not found: 'secret error'");
        }

        console.log("Client return value", client);
        return client;
    } catch(e) {
        console.log("get client err", e);

    }
}

我在这里使用模型:

export const model =  {
    getAccessToken: getAccessToken,
    getClient: getClient,
    getRefreshToken: getRefreshToken,
    getUser: getUser,
    saveToken: saveToken,
    validateScope: validateScope,
    verifyScope: verifyScope,
}

但是当我在oauth对象上调用函数时,它抱怨模型未定义

import Oauth2Server from 'oauth2-server';
import {model} from './model';
console.log(model);
const oauth = new Oauth2Server({
    model: model,
    requireClientAuthentication: {password: false}
});
export default oauth

我可以使用与常规javascript大致相同的设置和代码来使其正常工作。 但是当我使用打字稿时,无法弄清楚为什么模型是import oauth from './oauth'; export default (app:Application) => { app.all('/oauth/token', (req:Request,res:Response) => { var request = new OAuthRequest(req); var response = new OAuthResponse(res); oauth .token(request,response) .then(function(token) { return res.json(token) }).catch(function(err){ return res.status(500).json(err) }) }); }

欢迎所有建议

最诚挚的问候

1 个答案:

答案 0 :(得分:0)

我看到一种情况下返回undefined,它在try内部,抛出错误,您发现了它,但是什么也没返回。

您可以选中return false进行检查。