未定义的 var module.exports

出于某种原因,我无法从单独的自定义模块中获取从 module.exports 函数返回的值。我从 10 多个研究帖子的许多来源尝试了多种方法。如果您想投反对票,请阅读我的简历,或者如果您想提供帮助,我将很乐意接受您的回答。


// restapi/index.js


module.exports = function gifs() {


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

        return res.data[0];

    });

}


// main server.js


var readapi = require('restapi')

console.log(readapi.gifs());


// Output:__________________


TypeError: readapi.gifs is not a function


慕无忌1623718
浏览 186回答 2
2回答

不负相思意

您正在导出一个函数,而不是一个带有函数的对象,并且您正在使用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')()

尚方宝剑之说

试试这个代码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.jsvar readapi = require('restapi')readapi.gifs().then(console.log);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript