【问题标题】:Unexpected token ' when generating a png chart using node-export-server使用 node-export-server 生成 png 图表时出现意外令牌'
【发布时间】:2017-12-21 08:15:30
【问题描述】:

我正在尝试使用 node-export-server 库导出高图;

npm install highcharts-export-server -g

库和教程:

https://github.com/highcharts/node-export-server#server-test

就像在 Github 的文档中一样,我使用 highcharts-export-server --enableServer 1 启动了服务器,并在另一个 cmd 窗口中尝试运行以下命令:

curl -H "Content-Type: application/json" -X POST -d '{"infile":{"title": "text": "Steep Chart"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, series": [{"data": [29.9, 71.5, 106.4]}]}}' 127.0.0.1:7801 -o mychart.png

运行它会给出意外令牌'' 的错误。执行命令的终端会弹出此错误。将' 更改为",反之亦然,这对这方面有帮助。没有错误弹出,命令似乎工作:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100  1273  100  1137  100   136  71062   8500 --:--:-- --:--:-- --:--:-- 71062

已生成名为mychart.png 的图像,但无法打开。

在服务器端,出现如下错误:

SyntaxError: Unexpected token ' in JSON at position 1
    at JSON.parse (<anonymous>)
    at parse (C:\Users\Maarten Courtin\AppData\Roaming\npm\node_modules\highcharts-export-server\node_modules\body-parser\lib\types\json.js:88:17)
    at C:\Users\Maarten Courtin\AppData\Roaming\npm\node_modules\highcharts-export-server\node_modules\body-parser\lib\read.js:116:18
    at invokeCallback (C:\Users\Maarten Courtin\AppData\Roaming\npm\node_modules\highcharts-export-server\node_modules\raw-body\index.js:262:16)
    at done (C:\Users\Maarten Courtin\AppData\Roaming\npm\node_modules\highcharts-export-server\node_modules\raw-body\index.js:251:7)
    at IncomingMessage.onEnd (C:\Users\Maarten Courtin\AppData\Roaming\npm\node_modules\highcharts-export-server\node_modules\raw-body\index.js:307:7)
    at emitNone (events.js:106:13)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1056:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)

有人知道这个问题的解决方案是什么吗?

【问题讨论】:

  • 命令是多行吗?如果是这样,您需要以反斜杠 (\) 结束每一行。
  • 不是。为了清楚起见,我只是在多行中提到了它,但这可能不起作用..好问题。

标签: javascript json node.js highcharts cmd


【解决方案1】:

问题出在窗口命令提示符处。 Unix shell 和 Windows 命令提示符对引号的处理方式不同。您正在使用的命令将在 Unix 上运行,但在 Windows 上不运行。

为了解决这个问题,您必须使用带有转义字符的双引号,如下所示

curl -H "Content-Type: application/json" -X POST -d "{\"infile\":{\"title\": {\"text\": \"Steep Chart\"}, \"xAxis\": {\"categories\": [\"Jan\", \"Feb\", \"Mar\"]}, \"series\": [{\"data\": [29.9, 71.5, 106.4]}]}}" 127.0.0.1:7801 -o mychart.png

我没有测试过上面的命令,这里和那里可能缺少一些引号,但我想你明白了。

无效的 JSON :请注意,您发布的 JSON 无效。检查它here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 2021-06-22
    • 2018-11-24
    • 1970-01-01
    • 2020-05-11
    • 2018-03-16
    • 1970-01-01
    相关资源
    最近更新 更多