Я создаю свой сервер следующим образом:
const createServer = options => {
const { logSeverity } = options;
const server = Fastify({
ignoreTrailingSlash: true
});
server.listen(5000, err => {
if (err) {
server.log.error(err);
console.log(err);
process.exit(1);
}
});
server.register(AutoLoad, {
dir: path.join(__dirname, "api", "routes")
});
server.register(jwt, {
secret: nconf.get("secrets.jwt")
});
};
И в одном из моих модулей на ./some/child/path/signToken.js
я делаю:
const nconf = require("nconf");
const jwt = require("fastify-jwt");
const signToken = payload => {
fastify.jwt.sign(payload, nconf.get("secrets.jwt"), (err, token) => {
if (err) throw err;
const response = {
userId: payload.user._id,
username: payload.user.username,
token
};
return response;
});
};
module.exports = { signToken };
, который выдает ошибку, Cannot read property 'sign' of undefined
.
Согласно документам ,
This will decorate your fastify instance with the standard jsonwebtoken methods
Что я здесь не так делаю? Возможно, это невозможно, потому что я создаю сервер, а сервер - мой экземпляр fastify? Должен ли я тогда импортировать server
как-нибудь?