为了账号安全,请及时绑定邮箱和手机立即绑定

未定义的 var module.exports

未定义的 var module.exports

慕无忌1623718 2021-12-02 16:03:37
出于某种原因,我无法从单独的自定义模块中获取从 module.exports 函数返回的值。我从 10 多个研究帖子的许多来源尝试了多种方法。如果您想投反对票,请阅读我的简历,或者如果您想提供帮助,我将很乐意接受您的回答。// restapi/index.jsmodule.exports = function gifs() {    giphy.search('Pokemon', function (err, res) {        return res.data[0];    });}// main server.jsvar readapi = require('restapi')console.log(readapi.gifs());// Output:__________________TypeError: readapi.gifs is not a function
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您正在导出一个函数,而不是一个带有函数的对象,并且您正在使用console.log带有异步操作的同步函数 ( ) ..它不会工作。


你需要这样写:


module.exports = function gifs(cb) {

  giphy.search('Pokemon', function (err, res) {

    if(err) { cb(err) }

    else { cb(null, res.data[0]) }

  });

}


----


var readapi = require('restapi')

readapi((err, data) => { console.log({err, data}) })

记住以下区别:


module.export = {

  hello: () => { console.log('world') }

}

// usage: require('./hello').hello()


module.export = () => { console.log('world') }

// usage: require('./hello')()


查看完整回答
反对 回复 2021-12-02
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

试试这个代码


module.exports.gifs = function gifs() {

    return new Promise((resolve, reject) => {

      giphy.search('Pokemon', function (err, res) {

         if (err) reject(err);

         else resolve(res.data[0]);

      });

    });

}


// main server.js


var readapi = require('restapi')

readapi.gifs().then(console.log);


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信