我正在尝试使用“价格”创建一个架构。使用Mongoose货币的字段并按照documentation进行操作。但是输出不显示两位小数(499而不是4.99)。如果我使用console.log打印价格,它会显示所需的结果,带有两位小数。我想知道我是否误解了关于货币的Mongoose文件,或者原因是否存在于其他地方。
这是我的架构。
var mongoose = require('mongoose');
var assert = require('assert');
var Dishes = require('./models/stackmodel');
// Connection URL
var url = 'mongodb://localhost:27017/conFusion';mongoose.connect(url);
var db = mongoose.connection;
var product = new Dishes({ price: '4.99' });
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
// we're connected!
console.log("Connected correctly to server");
// create a new dish
Dishes.create({
name: 'Uthapizza',
price: (product.price/100).toFixed(2),
}, function (err, dish) {
if (err) throw err;
console.log('Dish created!');
console.log(dish);
console.log(typeof (product.price/100).toFixed(2));
console.log((product.price/100).toFixed(2));
db.collection('dishes').drop(function () {
db.close();
});
});
});

这是我的模特。
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
require('mongoose-currency').loadType(mongoose);
var Currency = mongoose.Types.Currency;
// create a schema
var dishSchema = new Schema({
name: {
type: String,
required: true,
unique: true
},
price: {
type: Currency,
require: true,
min: -20000,
max: 50000,
default: ''
}
});
var Dishes = mongoose.model('Dish', dishSchema);
// make this available to our Node applications
module.exports = Dishes;

这是打印输出。
C:\ass2>node stack
Connected correctly to server
Dish created!
{ __v: 0,
name: 'Uthapizza',
_id: 58cd3dbd4319c51264489d8d,
price: 499 }
string
4.99
C:\ass2>

我在网上搜索过,包括在这个网站上,但到目前为止找不到任何解决方案。
我用:
npm ERR! extraneous: currency@3.0.0 C:\node_modules\currency
npm ERR! extraneous: mocha@3.2.0 C:\node_modules\mocha
npm ERR! extraneous: mongoose-currency@0.2.0 C:\node_modules\mongoose-currency

事先感谢。