0
我想加載一個祕密使用koa-jsonwebtoken。如何讀取文件異步模塊與然後收益
這裏的培訓相關的位從我的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}
,而不是服務器密鑰。
爲debuggin目的,你有沒有試過'fs.readFileAsync( '../ serverCredentials.json', 'utf-8'),那麼(函數(RES){的console.log (res)})'? – JorgeObregon
註釋掉最後一行,這樣做的確觸發了ENOENT的捕獲......但我現在糾正了這條路徑,仍然是同樣的問題。更新 –
鑑於您使用的是藍鳥,爲什麼選擇當時的產量而不是'Promise.coroutine'?考慮到你正在使用一個轉譯器,爲什麼不直接簡單地使用'async' /'await'呢? – Bergi