/ / SyntaxError: Несподіваний маркер. JSON.stringify (data_params) - json, node.js

Синтаксична помилка: неочікуваний токен. JSON.stringify (database_params) - json, node.js

якщо я запускаю свою програму вузла, я отримую синтаксиспомилка. Але чому після того, як я використовую jshint, він перевіряє мій код і показує мені помилку в JSON.stringify. Я спробував це виправити таким чином JSON: stringify, але код знову не працює. Чи знаєте ви якийсь спосіб виправити це, і чому JSON.stringify неправильний синтаксис.

function updateMarketPrices() {

// BITSKINS API REQUEST FRESH PRICES
request("https://bitskins.com/api/v1/get_all_item_prices/?api_key="+ API_KEYBIT+"&code="+bit_code+"", function(error, response, body) {
prices = JSON.parse(body);

if(prices.status != "success") {
logger.warn("Loaded fresh prices");
// CHANGE SITE LOCATION
if(fs.existsSync("prices.txt")){
// CHANGE SITE LOCATION
prices = JSON.parse(fs.readFileSync("prices.txt"));
logger.warn("Prices loaded from cache");
} else {
logger.error("No prices in cache");
process.exit(0);
}
} else {

var newprice = JSON.parse("{"response":{"success":1,"current_time":1464567644,"items":{}}}");

prices.prices.forEach(function(item) {
newprice.response.items["migration_time_validation"] = {JSON.stringify(database_params)};
newprice.response.items[item.market_hash_name] = {
"value": item.price*1000
}
});

// CHANGE SITE LOCATION
fs.writeFileSync("prices.txt", JSON.stringify(newprice));
logger.trace("New prices loaded");
}
});
}

Відповіді:

0 для відповіді № 1

Я бачу, що ви намагаєтесь використовувати JSON.stringify () всередині оголошення об'єкта у вашому циклі foreach.

Викличте метод JSON.stringify поза оголошенням об'єкта, призначте його змінній і використовуйте це замість цього.

Ваш код повинен закінчитися приблизно так:

prices.prices.forEach(function (item) {
var dbParams = JSON.stringify(database_params);

newprice.response.items["migration_time_validation"] = {
dbParams
};
newprice.response.items[item.market_hash_name] = {
"value": item.price * 1000
}
});

Як варіант, якщо ви просто хочете вставити JSON в базу даних, не обертаючи його об’єктом JavaScript, просто видаліть дужки наступним чином:

prices.prices.forEach(function (item) {
newprice.response.items["migration_time_validation"] = JSON.stringify(database_params);

newprice.response.items[item.market_hash_name] = {
"value": item.price * 1000
}
});