Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
Error: error en la conversión a número para el valor "undefined58" (tipo de cadena) en la ruta "TimePeriod"

Intentando agregar impuestos a un usuario usando 3 parámetros de Usuario, original y porcentaje. Los esquemas se definen a continuación, así como la llamada de la función.

 const usertaxschema = require('./schemas/usertaxschema') const maintaxschema = require('./schemas/maintaxschema') const taxedamount = ((percent/100)*original).toFixed(0) const data = await usertaxschema.findOne({User:User}) if(!data) { const newSchema = new usertaxschema({ User:User, TaxesPaidInTotal:0, TakesPaidThisPeriod:0, }) await newSchema.save().catch((err) => console.log(err)) return 0 } const chubster = await maintaxschema.findOne({Taxes:'Main'}) chubster.TotalTaxesPaid +=taxedamount chubster.taxesavailable += taxedamount data.TotalTaxesPaid +=taxedamount data.TimePeriod += taxedamount await chubster.save() await data.save() return taxedamount }

UserTaxSchema

 const mongoose = require('mongoose') const usertaxschema = mongoose.Schema({ User:String, TaxesPaidInTotal:Number, TimePeriod:Number, }) module.exports = mongoose.model('usertaxes', usertaxschema, 'usertaxes')

Esquema fiscal principal

 const mongoose = require('mongoose') const maintaxschema = mongoose.Schema({ Taxes:String, //Main etc TotalTaxesAllTime:Number, TaxesCollectedThisPeriod:Number, TaxesInBalance:Number, }) module.exports = mongoose.model('maintaxes', maintaxschema, 'maintaxes')

Ejemplo de función de llamada

 const fatso = await Client.economy.taxUser(interaction.user.id, 500, 11.5) console.log(fatso)
about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Number.toFixed devuelve una String . De ahí viene "58" . Luego, "agrega" (concatena) la String "58" a varias propiedades que deberían almacenar números, pero parece que la propiedad TimePeriod no está undefined , por lo que concatena undefined y "58" y obtiene el valor "undefined58" .

Tienes que arreglar dos cosas:

  1. asegúrese de agregar números a números, en lugar de agregar cadenas a números
  2. compruebe si las propiedades no están undefined antes de agregarlas

Para resolver #1, esta línea

 const taxedamount = ((percent/100)*original).toFixed(0)

debe usar Math.round en lugar de .toFixed , porque Math.round devuelve un número, mientras que .toFixed devuelve una cadena.

 const taxedamount = Math.round(percent / 100 * original)

Para resolver el n. ° 2, debe verificar si no está undefined (tal vez incluso si es null , si ese también es un valor posible) antes de agregar valores. Pero, ¿está seguro de que debería agregar una "cantidad sujeta a impuestos" a un "período de tiempo"?

Bueno, de todos modos, si eso es lo que quiere hacer, y si desea agregar la cantidad, incluso si el valor actual de la propiedad no está undefined (o es null ), puede establecer el valor predeterminado en 0 antes de agregar

 data.TimePeriod = (data.TimePeriod || 0) + taxedamount

Debe hacer eso para todas las propiedades que pueden contener undefined (o null ) para no obtener un valor NaN (no un número).

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!