SyntaxError: неожиданный токен 'в JSON в позиции 0 - PullRequest
1 голос
/ 21 марта 2020
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const fs = require("fs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());



// http://expressjs.com/en/starter/static-files.html
app.use(express.static("public"));

const dbFile = "./.data/sqlite.db";
const exists = fs.existsSync(dbFile);
const sqlite3 = require("sqlite3").verbose();
const db = new sqlite3.Database(dbFile);

db.serialize(() => {
  if (!exists) {
    db.run(
      "CREATE TABLE UserData (UserID INTEGER, Points INTEGER, Warnings INTEGER, Suspendions INTEGER, Blacklisted TEXT)"
    );
    console.log("New table UserData created!");

  }
});

app.post("/adduserdatacard", (request, response) => {
  console.log(`add to userdata ${request.body.userid}`);


  const userid = request.body.userid;
  const points = request.body.points;
  db.run(`INSERT INTO UserData (UserID,Points,Warnings,Suspendions,Blacklisted) VALUES (?,?,0,0,'false')`,userid, points, error => {
    if (error) {
      response.send({ message: "error" });
    } else {
      response.send({ message: "success" });
    }
  });
});

Я в замешательстве из-за того, что в моем коде нет 'no'. Я запускаю API через CURL с

curl -H "Content-Type: application/json" -X POST -d '{"UserID":1,"Points":1234}' http://lts-database.glitch.me

Зачем мне сообщать о такой ошибке, если нет кавычек? Я уже связал замену кавычки вокруг JSON и там говорится, что недействительный токен U.

1 Ответ

2 голосов
/ 21 марта 2020

В действительности у вас есть ' символ одинарной кавычки в строке, которую вы передаете конечной точке вашего сообщения.

Это строка, которую вы передаете

'{"UserID":1,"Points":1234}'

Это должно быть

"{\"UserID\":1,\"Points\":1234}"

Помещение строк JSON в команды оболочки, такие как curl, является печально известной болью в шее, как вы обнаруживаете. Вы должны заключить их в двойные кавычки, а затем избегать двойных кавычек внутри них.

Этот вопрос может оказаться полезным для вас. Сохранить JSON непосредственно в bash скрипте с переменными?

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