意想不到的令牌'使用node-export-server生成png图表时

时间:2017-12-21 08:15:31

标签: javascript json node.js highcharts cmd

我正在尝试使用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)

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

1 个答案:

答案 0 :(得分:1)

问题出在Window Command Prompt上。 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