Неаутентифицированные запросы не допускаются. SyntaxError: неожиданный токен U в JSON в позиции 0 - PullRequest
0 голосов
/ 01 мая 2020

Я начинающий ученик Js, использующий Nodejs. Ниже приведен код, подобный следующему:

const express = require('express');
    const bodyParser = require('body-parser');
    const request = require('request');

    const app = express();

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

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

    app.post("/", (req, res, next) =>{
    try {
    var crypto = req.body.crypto;
    var fiat = req.body.fiat;
    var baseURL = "https://apiv2.bitcoinaverage.com/indices/global/ticker/all?crypto=crypto&fiat=fiat";
    var finalURL = baseURL + crypto + fiat;

    request(finalURL, (error, response, body) => {
    var data = JSON.parse(body);
    var price = data.last;
    res.send("<h1>The current price of " + crypto + " is " + price + fiat + "</h1>");
    });

    } catch (err) {
    console.log(err);
    }
    });

, но он отправляет мне такую ​​ошибку, и я не могу ее понять.

undefined: 1 Запросы, не прошедшие проверку подлинности, запрещены. Возьмите новый план или начните бесплатную пробную версию на https://pro.bitcoinaverage.com ^

SyntaxError: Unexpected token U in JSON at position 0
at JSON.parse (<anonymous>)
at Request._callback (F:\ProgProb\WebDep\Bitcoin-Ticker\index.js:38:20)
at Request.self.callback (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:185:22)
at Request.emit (events.js:311:20)
at Request.<anonymous> (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:1154:10)
at Request.emit (events.js:311:20)
at IncomingMessage.<anonymous> (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:417:28)
at IncomingMessage.emit (events.js:323:22)
at endReadableNT (_stream_readable.js:1204:12)

1 Ответ

0 голосов
/ 01 мая 2020

Api возвращает строку:

Запросы, не прошедшие проверку подлинности, запрещены. Возьмите новый план или начните бесплатную пробную версию на https://pro.bitcoinaverage.com ^

Вы пытаетесь проанализировать этот ответ на JSON, чтобы вы получили ошибку.

var data = JSON .parse (body);

Вы должны получить ключ API apli c, создав учетную запись (https://apiv2.bitcoinaverage.com/#authentication).

и добавьте к нему заголовок, как в примере:

var crypto = require('crypto-js');

var public_key = 'enter your public key';
var ticker_btcusd_url = 'https://apiv2.bitcoinaverage.com/indices/global/ticker/BTCUSD';

var request = require('request');
var options = {
url: ticker_btcusd_url,
    headers: {
        'x-ba-key': public_key
    }
};
function callback(error, response, body) {
    if (!error && response.statusCode === 200) {
        console.log(body);
    }
}

request(options, callback);

Источник: https://github.com/bitcoinaverage/api-integration-examples/blob/master/javascript_examples/authentication.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...