NodeJS:TypeError:缓冲区不是一个函数(但它是一个函数!)

对此感到困惑。我使用的是典型的Node + Express设置,我的许多脚本都在操作Buffer对象,这些对象基本上在任何地方都可以正常工作。除了一个脚本外,该脚本定义了一种从ElasticSearch数据存储检索文档的路径。我正在尝试通过解码文件数据的base64编码的字符串来创建新的Buffer对象,然后将其发送到浏览器。但是,即使new Buffer(fildata,'base64')恰好在调用之前的console.log会按照您的期望打印出Buffer函数的描述,我也会收到一个异常“ TypeError:Buffer不是一个函数”。

相关代码:

var Buffer = require('buffer');
// ... then in the route, inside the callback from the ElasticSearch get() method:
res.setHeader('Content-Type', doc["mimetype"]);
res.setHeader('Content-disposition', 'attachment; filename=' + doc["filename"]);
res.type(doc["mimetype"]);
console.log(Buffer); // Yep, definitely a function here!
res.send(new Buffer(doc["filedata"], 'base64'));

以及节点的输出(请注意在引发异常之前的console.log输出):

{ Buffer:
   { [Function: Buffer]
     poolSize: 8192,
     isBuffer: [Function: isBuffer],
     compare: [Function: compare],
     isEncoding: [Function],
     concat: [Function],
     byteLength: [Function: byteLength] },
  SlowBuffer: [Function: SlowBuffer],
  INSPECT_MAX_BYTES: 50,
  kMaxLength: 2147483647 }
/Users/myusername/mynodeproject/routes/retrieve.js:50
                    res.send(new Buffer(doc["filedata"], 'base64'));
                             ^

TypeError: Buffer is not a function
    at /Users/myusername/mynodeproject/routes/retrieve.js:50:15
    at respond (/Users/myusername/mynodeproject/node_modules/elasticsearch/src/lib/transport.js:301:9)
    at checkRespForFailure (/Users/myusername/mynodeproject/node_modules/elasticsearch/src/lib/transport.js:239:7)
    at HttpConnector.<anonymous> (/Users/myusername/mynodeproject/node_modules/elasticsearch/src/lib/connectors/http.js:155:7)
    at IncomingMessage.wrapper (/Users/myusername/mynodeproject/node_modules/lodash/index.js:3095:19)
    at emitNone (events.js:72:20)
    at IncomingMessage.emit (events.js:166:7)
    at endReadableNT (_stream_readable.js:905:12)
    at doNTCallback2 (node.js:452:9)
    at process._tickCallback (node.js:366:17)
炸药

读你的控制台输出,返回值require("buffer")不是一个函数。相反,它是一个具有两种方法的对象:BufferSlowBuffer

在您的情况下,Buffer该对象是否具有这两种方法。相反,您应该这样做var Buffer = require('buffer').Buffer;(假设您也不需要SlowBuffer)。

另一个答案所述,您甚至不需要require("buffer")它自动作为Node中的全局节点可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

NodeJs:TypeError:require(...)不是一个函数

来自分类Dev

在一个函数(OpenGL和C ++)中多次交换缓冲区

来自分类Dev

需要一个用于延迟而不清除C语言缓冲区的函数

来自分类Dev

TypeError:jQuery(...)。on不是一个函数

来自分类Dev

TypeError:this。$ set不是一个函数

来自分类Dev

TypeError:require(...)不是一个函数

来自分类Dev

TypeError:$(...)。datepicker不是一个函数

来自分类Dev

TypeError:* .getMonth不是一个函数

来自分类Dev

TypeError:func(...)。then不是一个函数

来自分类Dev

TypeError:$(...)。dialog不是一个函数

来自分类Dev

TypeError:$(...)。datepicker不是一个函数

来自分类Dev

TypeError:$(...)。visualize不是一个函数

来自分类Dev

TypeError:require(...)不是一个函数

来自分类Dev

TypeError:$ .mainBowerFiles不是一个函数

来自分类Dev

SDL2-如何使用一个缓冲区而不是两个缓冲区进行渲染?

来自分类Dev

Python 3 ctypes 调用需要通过另一个结构间接引用缓冲区的函数

来自分类Dev

将缓冲区加到一个

来自分类Dev

缓冲区溢出的第一个实验

来自分类Dev

Bytewiser的最后一个挑战:数组缓冲区

来自分类Dev

选择/轮询和一个写缓冲区

来自分类Dev

封装一个C型缓冲区

来自分类Dev

缓冲区溢出的第一个实验

来自分类Dev

如何增加一个缓冲区?

来自分类Dev

我如何为每个缓冲区而不是每个窗口设置一个选项?

来自分类Dev

每字节读取一个 nodejs 缓冲区字节

来自分类Dev

解析一个缓冲区会影响另一个缓冲区吗?

来自分类Dev

TypeError:需要一个字符缓冲区对象,所以很烦人

来自分类Dev

Arcpy-创建一个缓冲区,然后溶解在一个脚本中

来自分类Dev

NodeJs Cluster.Fork 不是一个函数

Related 相关文章

  1. 1

    NodeJs:TypeError:require(...)不是一个函数

  2. 2

    在一个函数(OpenGL和C ++)中多次交换缓冲区

  3. 3

    需要一个用于延迟而不清除C语言缓冲区的函数

  4. 4

    TypeError:jQuery(...)。on不是一个函数

  5. 5

    TypeError:this。$ set不是一个函数

  6. 6

    TypeError:require(...)不是一个函数

  7. 7

    TypeError:$(...)。datepicker不是一个函数

  8. 8

    TypeError:* .getMonth不是一个函数

  9. 9

    TypeError:func(...)。then不是一个函数

  10. 10

    TypeError:$(...)。dialog不是一个函数

  11. 11

    TypeError:$(...)。datepicker不是一个函数

  12. 12

    TypeError:$(...)。visualize不是一个函数

  13. 13

    TypeError:require(...)不是一个函数

  14. 14

    TypeError:$ .mainBowerFiles不是一个函数

  15. 15

    SDL2-如何使用一个缓冲区而不是两个缓冲区进行渲染?

  16. 16

    Python 3 ctypes 调用需要通过另一个结构间接引用缓冲区的函数

  17. 17

    将缓冲区加到一个

  18. 18

    缓冲区溢出的第一个实验

  19. 19

    Bytewiser的最后一个挑战:数组缓冲区

  20. 20

    选择/轮询和一个写缓冲区

  21. 21

    封装一个C型缓冲区

  22. 22

    缓冲区溢出的第一个实验

  23. 23

    如何增加一个缓冲区?

  24. 24

    我如何为每个缓冲区而不是每个窗口设置一个选项?

  25. 25

    每字节读取一个 nodejs 缓冲区字节

  26. 26

    解析一个缓冲区会影响另一个缓冲区吗?

  27. 27

    TypeError:需要一个字符缓冲区对象,所以很烦人

  28. 28

    Arcpy-创建一个缓冲区,然后溶解在一个脚本中

  29. 29

    NodeJs Cluster.Fork 不是一个函数

热门标签

归档