【问题标题】:NodeJS Error "Unexpected token"NodeJS 错误“意外的令牌”
【发布时间】:2016-09-04 16:24:13
【问题描述】:

我想创建一个基于规则的网站。我得到了代码和脚本。当我运行脚本时出现此错误。

[SyntaxError: Unexpected token <]
SyntaxError: Unexpected token <
    at Object.parse (native)
    at Request._callback (/var/www/html/Bot/BOT/site.js:63:16)
    at Request.self.callback (/root/node_modules/request/request.js:200:22)
    at emitTwo (events.js:100:13)
    at Request.emit (events.js:185:7)
    at Request.<anonymous> (/root/node_modules/request/request.js:1067:10)
    at emitOne (events.js:95:20)
    at Request.emit (events.js:182:7)
    at IncomingMessage.<anonymous> (/root/node_modules/request/request.js:988:12)
    at emitNone (events.js:85:20)

我不知道如何解决这个问题。有人可以帮我吗?

网站.js

第 59-107 行

    load();

var prices;
request('http://backpack.tf/api/IGetMarketPrices/v1/?key=56fce4a5c4404545131c8fcf&compress=1&appid=730', function(error, response, body) {
    prices = JSON.parse(body);
    if(prices.response.success == 0) {
        logger.warn('Loaded fresh prices');
        if(fs.existsSync(__dirname + '/prices.txt')){
            prices = JSON.parse(fs.readFileSync(__dirname + '/prices.txt'));
            logger.warn('Prices loaded from cache');
        } else {
            logger.error('No prices in cache');
            process.exit(0);
        }
    } else {
        fs.writeFileSync('prices.txt', body);
        logger.trace('New prices loaded');
    }
});

updateHash();
function updateHash() {
    query('SELECT * FROM `hash` ORDER BY `id` DESC LIMIT 1', function(err, row) {
        if(err) {
            logger.error('Cant get the hash, stopping');
            logger.debug(err);
            process.exit(0);
            return;
        }
        if(row.length == 0) {
            logger.error('Wrong hash found, stopping');
            process.exit(0);
        } else {
            if(hash != row[0].hash) logger.warn('Loaded hash'+row[0].hash);
            hash = row[0].hash;
        }
    });
}

io.on('connection', function(socket) {
    var user = false;
    socket.on('hash', function(hash) {
        query('SELECT * FROM `users` WHERE `hash` = '+pool.escape(hash), function(err, row) {
            if((err) || (!row.length)) return socket.disconnect();
            user = row[0];
            users[user.steamid] = {
                socket: socket.id,
                balance: parseInt(row[0].balance)
            }

第 63 行是吗

prices = JSON.parse(body);

完整文件在这里http://pastebin.com/yRELaZku

【问题讨论】:

  • 您需要发布代码。只是向我们展示错误并没有帮助。将您的 site.js 文件第 63 行附近的所有代码提供给我们
  • 为什么你决定把它标记为 PHP 我不知道:P
  • 如果我们能看到我们可以帮助你的代码!
  • 我添加了指向 pastebin 的链接。
  • 不,您将 URL 添加为纯文本。我修好了它。但最好将代码包含在您的问题中。

标签: sql node.js ubuntu npm


【解决方案1】:

看起来请求的主体不是可解析的 json。做一个

console.log(body)

检查传入的数据

【讨论】:

    【解决方案2】:

    最后,您应该将Prices 更改为list 或将Prices 更改为dictionary

    prices = [];
    

    prices = {};
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 2015-11-19
      • 2018-08-27
      • 2014-12-07
      相关资源
      最近更新 更多