/ / SyntaxError: Jeton inattendu. JSON.stringify (database_params) - json, node.js

SyntaxError: jeton inattendu. JSON.stringify (database_params) - json, node.js

si je commence mon application de noeud je reçois une syntaxeErreur. Mais pourquoi, après avoir utilisé jshint, il vérifie mon code et me montre une erreur dans JSON.stringify. JSON: stringify, mais le code ne fonctionne plus. Connaissez-vous une méthode pour résoudre ce problème et pourquoi JSON.stringify n’est pas une syntaxe correcte.

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");
}
});
}

Réponses:

0 pour la réponse № 1

Je peux voir que vous essayez d'utiliser JSON.stringify () à l'intérieur d'une déclaration d'objet dans votre boucle foreach.

Appelez la méthode JSON.stringify en dehors de la déclaration d'objet, affectez-la à une variable et utilisez-la à la place.

Votre code devrait finir par quelque chose comme ça:

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
}
});

Si vous souhaitez simplement insérer le code JSON dans la base de données sans l'envelopper dans un objet JavaScript, supprimez simplement les accolades comme suit:

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
}
});