首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取使用Fastify抛出的未定义错误的.sign

无法读取使用Fastify抛出的未定义错误的.sign
EN

Stack Overflow用户
提问于 2019-10-24 18:33:52
回答 1查看 352关注 0票数 0

我用下面的方法创建我的服务器:

代码语言:javascript
复制
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的一个模块中,我做到了:

代码语言:javascript
复制
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

根据docs的说法

代码语言:javascript
复制
This will decorate your fastify instance with the standard jsonwebtoken methods

我在这里做错了什么?这是不是不可能,因为我正在创建一台服务器,而服务器是我的fastify实例?然后我必须以某种方式导入server吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-24 02:06:36

您正在使用以下命令启动服务器

代码语言:javascript
复制
server.listen(5000...

在注册你的插件之前。

根据the fastify docs的说法,正确的顺序是:

  1. 插件(来自fastify ecosystem)
  2. your插件)(您的自定义plugins)
  3. decorators
  4. hooks和middlewares
  5. your服务

这应该在调用fastify.listen()之前发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58539454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档