nodejs公众号无法保存全局token

发布于 09-05 09:55 字数 861 浏览 24 评论 0

用的是朴灵的wechat-api,监视器显示,直接跨过fs.readFile,进到了router里,而且永远不执行readFile函数,请教该如何解决呢万分感谢哈。

var config = {
    token: '**',
    appid: '**',
    appsecret: '**',
    encodingAESKey: '**'
};

// var api = new wechatApi(config.appid, config.appsecret);
 var api = new wechatApi(config.appid, config.appsecret, function (callback) {
  // 传入一个获取全局token的方法
  fs.readFile('access_token.txt', 'utf8', function (err, txt) {
    if (err) {return callback(err);}
    callback(null, JSON.parse(txt));
  });
}, function (token, callback) {
  // 请将token存储到全局,跨进程、跨机器级别的全局,比如写到数据库、redis等
  // 这样才能在cluster模式及多机情况下使用,以下为写入到文件的示例
  fs.writeFile('access_token.txt', JSON.stringify(token), callback);
});


router.use(express.query());

router.use('/', wechat(config, function (req, res, next) {

    console.log(req.weixin);
    var message = req.weixin;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绅士风度i2022-09-12 09:55:45
  1. nodejs是异步的,你的readfile在callback里,所以代码顺序执行router的部分,是没有问题的
  2. 不了解这个api的构建函数,不知道何时会调用callback.不过一般都是手动调用实例的方法的时候才会触发callback
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文