gpt4 book ai didi

javascript - 如何使用 then-yield 异步读取模块文件

转载 作者:行者123 更新时间:2023-12-03 05:07:08 25 4
gpt4 key购买 nike

我正在尝试加载与koa-jsonwebtoken一起使用的 secret 。

这是我的 koa 服务器的相关部分:

import jwt, { fromAuthorizationHeader } from 'koa-jsonwebtoken';
import {serverCredentials} from './auth'
//...
console.log('loaded serverCredentials' + JSON.stringify(serverCredentials))
app.use(jwt({ secret: serverCredentials.shared, extractToken: fromAuthorizationHeader }));

我的授权是:

import ty from 'then-yield'
import md5 from 'md5'
import Promise from 'bluebird'
const fs = Promise.promisifyAll(require('fs'));

const serverCredentials = ty.spawn(function* () {
let src
try {
console.log('trying')
src = yield fs.readFileAsync('./serverCredentials.json','utf8')
} catch(e) {
console.error('Error when opening serverCredentials file: ' + e.message);
throw e
}
console.log('serverCredentials: ' + src)
return JSON.parse(src)
})

export {serverCredentials}

但我的日志说:

trying
loaded serverCredentials{"isFulfilled":false,"isRejected":false}

而不是服务器 key 。

最佳答案

serverCredentials 是对 JSON 解析对象的 promise 。您需要等待:

import jwt, { fromAuthorizationHeader } from 'koa-jsonwebtoken';
import {serverCredentials as credentialsPromise} from './auth';

credentialsPromise.then(serverCredentials => {
console.log('loaded serverCredentials' + JSON.stringify(serverCredentials))
app.use(jwt({secret: serverCredentials.shared, extractToken: fromAuthorizationHeader}));
});

关于javascript - 如何使用 then-yield 异步读取模块文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41965919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com