给出类似猫鼬的架构我正在尝试使用此POST来获取股票的当前价格,并将其与用户的余额相匹配。如果库存少于用户剩余,则应从余额中减去。完成后,如果用户拥有投资组合,则投资组合应更新股份总数,并将交易推送到用户阵列。
var UserSchema = new mongoose.Schema({
email : { type: String, unique: true, required: true, trim: true},
name : { type: String, required: true},
password : { type: String, required: true},
balance : {type: Number, default: 5000},
transactions : [
{
name : { type: String, required: true},
buy_or_sell : {type: Boolean, required: true},
shares : {type: Number, required: true},
value : {type: Number, required: true}
}
],
portfolio : [
{
name : { type: String, unique: true, required: true },
shares : { type: Number, required: true }
}
]
});
router.post('/portfolio', (req, res, next)=>{
if (req.session.userId !== undefined){
var ticker = (req.body.ticker).toLowerCase();
var qty = req.body.qty;
User.findOne({ _id: req.session.userId }).exec(async function(err, user) {
var balance = user.balance;
const data = await alpha.data.quote(`${ticker}`);
var sum = Number((data['Global Quote']['05. price'] * qty).toFixed(2));
if (sum < balance){
let total = Number(balance-sum).toFixed(2)
let doc = await User.findOneAndUpdate({_id: req.session.userId}, {balance : sum})
....
....
}
});
} else {
res.redirect('/')
}
});