1

我编写了一个节点应用程序,它在其他很酷的东西旁边还提供了一个指向应用程序从 txt 文件创建的 pastebin 的链接。

它在我的 OS X 上的本地 macbook 上完美运行。但是在我租用的 debian 服务器上,当有人请求应用程序创建 pastebin 的链接/请求时,就会出现这种情况

编辑:我以前在我的服务器上也有这个工作。现在我只是在单独的模块中重新安排了一些代码,如 connection.js、database.js 等

如果需要,我将 pastebin 模块路径替换为#pastebin#,我会阅读它们。但所有这些都与 pastebin-js/node_modules/request/request.js 中的内容相关联

这是我用于 pastebin 的库:https ://github.com/j3lte/pastebin-js

_http_outgoing.js:339
        throw new TypeError(
        ^

    TypeError: Header name must be a valid HTTP Token ["Cache-Control:"]
        at ClientRequest.OutgoingMessage.setHeader (_http_outgoing.js:339:11)
        at new ClientRequest (_http_client.js:86:14)
        at Object.exports.request (http.js:31:10)
        at Request.start (#pastebin#)
        at Request.write (#pastebin#)
        at end (#pastebin#)
        at #pastebin#
        at doNTCallback0 (node.js:428:9)
        at process._tickCallback (node.js:357:13)
4

2 回答 2

3

所以我想我发现了我的问题。

我不得不升级我的服务器上的节点,因为 module.exports 和多个导出的语法由于某种原因在那里是未知的。

在 5.0 太高之后,我现在似乎降级到 v4.2.1 并且效果很好。

于 2015-11-08T17:22:11.353 回答
1

我是通过不相关的Header name must be a valid HTTP Token搜索来到这里的。我的问题是我试图使用这个:

res.setHeader("Content-disposition: attachment; filename="+filename);

但是在某个版本的 express 之后,你必须这样做:

res.setHeader("Content-disposition", "attachment; filename="+filename);

不同之处在于第二个使用两个参数(名称和值),其中第一个只是一个长字符串。

于 2015-12-11T19:19:02.610 回答