【问题标题】:use node module in javascript在 JavaScript 中使用节点模块
【发布时间】:2022-12-17 17:56:49
【问题描述】:

我想在js中导入并使用node模块。

我想使用的模块是这个。

https://github.com/contentful/contentful-resolve-response

我像示例一样运行它,但遇到错误。

  1. 我使用 npm 命令安装了模块。
    npm install contentful-resolve-response --save
    
    1. 创建一个 index.js 文件并导入该模块。
    import * as contentfulReserve from 'contentful-resolve-response'
    
    1. 像github例子一样使用模块
    var items = resolveResponse(response)
    
    1. 与 webpack 捆绑在一起。

    2. 我将捆绑的js文件放在html中并尝试运行它。

    错误语句是: 未捕获的类型错误:n(...).resolveResponse 不是函数

    模块是否未正确导入?


    package.json 依赖

    "dependencies": {
        "contentful-resolve-response": "^1.3.12"
      },
    

    索引.js

    import * as contentfulResorve from 'contentful-resolve-response'
    
    var response = {
      items: [
        {
          someValue: 'wow',
          someLink: { sys: { type: 'Link', linkType: 'Entry', id: 'suchId' } }
        }
      ],
      includes: {
        Entry: [
          { sys: { type: 'Entry', id: 'suchId' }, very: 'doge' }
        ]
      }
    };
    
    var items = resolveResponse(response) <- **error**
    

【问题讨论】:

  • 这回答了你的问题了吗? TypeError: resolve is not a function
  • @Delanovanlonden - 这似乎并不相关。
  • 我相信您正在使用别名从 contentful-resolve-response 导入所有导出,试试contentfulResolve.resolveResponse

标签: javascript ecmascript-6


【解决方案1】:

错误 Uncaught TypeError: n(...).resolveResponse is not a function 暗示函数 resolveResponse 不是您尝试使用的范围内的已定义函数。

对我来说突出的是你的 import 语句以别名 contentfulResorve 导入库的所有导出,这意味着如果你想从该库访问 resolveResponse 函数,你必须通过别名访问它作为contentfulResorve.resolveResponse

import * as contentfulResorve from 'contentful-resolve-response'
/* SOME CODE HERE */
var items = contentfulResorve.resolveResponse(response)

但是,看起来库上的默认导出是您打算使用的功能,这意味着您可以按以下方式编写

import resolveResponse from 'contentful-resolve-response'
/* SOME CODE HERE */
var items = resolveResponse(response)

【讨论】:

    【解决方案2】:

    从导入语句中删除星号,然后使用您用于导入的名称调用该函数。

    import resolveResponse from 'contentful-resolve-response'
    
    var response = {
      items: [
        {
          someValue: 'wow',
          someLink: { sys: { type: 'Link', linkType: 'Entry', id: 'suchId' } }
        }
      ],
      includes: {
        Entry: [
          { sys: { type: 'Entry', id: 'suchId' }, very: 'doge' }
        ]
      }
    };
    
    var items = resolveResponse(response)
    

    【讨论】:

      猜你喜欢
      • 2018-08-07
      • 2018-04-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多