JSON.parse位置0处的意外标记s



我正在学习JSON并观看一段Udemy视频。在编写代码的过程中,我在位置0处获得了JSON.parse意外的标记s。我不太确定如何修复这个错误,也不太确定它到底意味着什么。

我已经查看了问答;视频的一部分,似乎很多人都遇到了同样的错误,但没有解决方案。我也检查了一些stackoverflow的答案,但我对JSON的概念太陌生了,所以它毫无意义。如有任何帮助,我们将不胜感激!

const express = require("express");
const bodyParser = require("body-parser");
const request = require("request"); // use to do a request to an external 
server
const app = express();

app.use(bodyParser.urlencoded({extended: true}));

app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});

app.post("/", function(req, res) {

var crypto = req.body.crypto;
var fiat = req.body.fiat;

var URL = "https://apiv2.bitcoinaverage.com/indices/global/ticker/";
var finalURL = URL + crypto + fiat;
request(finalURL, function(error, response, body) {

var data = JSON.parse(body)
var price = data.last;
var currentDate = data.display_timestamp;

res.write("The current date is " + currentDate);
res.write("<h1>The current price of" +  crypto + " is: " + price + fiat + 
"</h1>");
res.send();
});
});
app.listen(3000, function() {
console.log("Server started on port 3000.");

});

HTML部件

<form action="/" method="post">
<select name=" crypto">
<option value="BTC">Bitcoin</option>
<option value="ETH">Ethereum</option>
<option value="LTC">Lightcoin</option>
</select>
<select name="fiat">
<option value="USD">US Dollars</option>
<option value="GBP">GB Pounds</option>
<option value="EUR">EU Euros</option>
</select>
<button type="submit" name="button">Check</button>
</form>

预期输出应该是当你选择加密货币和货币(如美元、英镑、欧元(时,它会告诉你加密货币的价格。

当使用错误的URL向此API发出请求时,会返回一个字符串,该字符串会导致JSON.parse返回此错误。可能是API提供者超时更改了此链接。尝试在浏览器中访问此api路由,看看它是否有效。

很可能您传递了错误的URL。

相关内容

最新更新