in ES6 non è possibile definire un modulo di funzioni come questoES6 di default di esportazione con molteplici funzioni che si riferiscono l'uno all'altro
export default {
foo() { console.log('foo') },
bar() { console.log('bar') },
baz() { foo(); bar() }
}
quanto sopra sembra essere codice valido, ma se chiamo baz()
che genera un errore:
ReferenceError: foo is not defined
Come si chiama foo
da un'altra funzione? in questo caso baz
Modifica
Ecco il codice che in realtà non funziona. Ho semplificato il codice in modo che solo il nucleo come necessario
const tokenManager = {
revokeToken(headers) {
...
},
expireToken(headers) {
...
},
verifyToken(req, res, next) {
jwt.verify(... => {
if (err) {
expireToken(req.headers)
}
})
}
}
export default tokenManager
e l'errore è
expireToken(req.headers);
^
ReferenceError: expireToken is not defined
Edit 2
Ho provato ad aggiungere tokenManager
prima expireToken
e funziona infine
Vedere la risposta di my o @ pawel. Per correggere, sostituire 'expireToken (req.headers)' con 'tokenManager.expireToken (req.headers)' o con 'this.expireToken (req.headers)'. – skozin