jak mam przechowywać cenę w mangusty?

Używam schematów mangose ​​dla node.js wraz z express-validator (który ma santiziacje i walidatory węzła-walidatora).

Jaki jest dobry sposób na przechowywanie ceny przedmiotu?

Obecnie mam

var ItemSchema = new Schema({
    name            : { type: String, required: true, trim: true }
    , price             : Number
});

Cena jest opcjonalna, więc mam:

  if ( req.body.price ) {
    req.sanitize('price').toFloat();
    req.assert('price', 'Enter a price (number only)').isFloat();
  }

express-validator daje mi isNumeric (pozwala na 0 dopełnienia), isDecimal i isInt ... Wolałbym po prostu przekonwertować na dziesiętny i usunąć wszystkie znaki, więc zawsze wstawiam 42.00 do db.

Chcę zezwolić im na wprowadzenie 42,00 USD, 42, 42, 42, 42.00 i po prostu zapisać 42,00. Jak mogę to osiągnąć? i nadal sprawdzam, czy widzę coś przypominającego numer, na przykład, jeśli wprowadzą „abc”, chcę rzucić błąd z powrotem do formularza, używając req.assert.

Przypuszczam też, że waluta w końcu stanie się problemem ...

Aktualizacja, znalazłem ten post, który mówi, aby zapisać cenę jako liczbę całkowitą w centach, czyli 4200https://dba.stackexchange.com/questions/15729/storing-prices-in-sqlite-what-data-type-to-use

Potrzebuję tylko sposobu, aby przekonwertować 4200 do 42,00 $, gdy zadzwonię do item.price, a także zdezynfekuję i skonwertuję dane wejściowe na 4200.

questionAnswers(5)

yourAnswerToTheQuestion