Почему х не является функцией? - PullRequest
0 голосов
/ 01 мая 2020
const instagramJSON = async function() {}

instagramJSON.get = async function(username) {

    if(!username) return new Error("Username needed!")

    const fetch = require("node-fetch"),
    url = "https://instagram.com/" + username + "/?__a=1"

    let res = await fetch(url).then(body => body.json())

    return res

}

exports = instagramJSON()

Я не знаю, почему это происходит, я не очень продвинутый. на JavaScript так что это может быть легкой ошибкой, которую я сделал, в чем может быть проблема?

TypeError: get is not a function
    at Object.<anonymous> (C:\Users\Dimitri\whatever stuff\test\test.js:3:13)
←[90m    at Module._compile (internal/modules/cjs/loader.js:1147:30)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:996:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:896:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m

1 Ответ

0 голосов
/ 01 мая 2020

lib/index.js

const instagramJSON = async function() {}

instagramJSON.get = ...

exports = instagramJSON()

test/test.js

const { get } = require("../lib/index.js")

console.log(get("thegstwins"))

Здесь есть две проблемы.

  • Вы перезаписываете exports вместо module.exports. Это неправильный способ определения объекта экспорта в Common JS.
  • Вы вызываете instagramJSON() и экспортируете его возвращаемое значение, что является обещанием. get является свойством функции , а не обещанием.

Исправляя обе эти проблемы, ваш lib/index.js будет выглядеть так:

const instagramJSON = async function() {}

instagramJSON.get = ...

module.exports = instagramJSON
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...