如何在ejs中向数据库中的变量添加一个数字
how to keep adding a number to a variable in the database in ejs
我有一个变量 quantity
和另一个变量 new quantity
。每当用户输入 new quantity
时,它都应该添加到之前的数量总和中。
我有一个创建表单和一个编辑表单。 quantity
字段在创建表单上,而 newlyAdded
字段在编辑表单上
这是架构片段
const mongoose = require('mongoose'),
stocksSchema = new mongoose.Schema({
name: String,
number: Number,
quantity: Number,
newlyAdded: Number,
sold: Number,
newlySold: Number,
balance: Number,
description: String,
...
ejs snippet
<% let justAdded = item.quantity + item.newlyAdded %>
<td><%= justAdded %></a></td>
例如,如果quantity = 10
和用户输入12
,新数字应该是22
,如果再次添加10
,新数字应该是32
但它显示 22
因为它不存储以前的添加。我如何解决这个问题?我知道编辑表单不适合这个。
一般来说,你有两种方式。
- 当用户输入值时,只需将值更新到 mongo db 中新添加的字段并刷新。如果您不刷新,则该值不会更改 newAdded 因为对服务器的请求已经完成。
2.update 到服务器的值相同。但是,不是重定向,您可以直接控制 dom。
使用 jquery 或 javascript.
这是使用示例jquery。
<input id="input" type="text" .. />
<td><a id="val"><%= justAdded %></a></td>
...
<script>
var oldVal = Number('<%= item.quantity %>');
$("#input").on("propertychange change keyup paste input", function() {
var currentVal = Number($(this).val());
var newVal = oldVal + currentVal;
if(currentVal == newVal) {
return;
}
$("#val").text(newVal);
oldVal = newVal;
});
</script>
发现我用于数据库的 mongodb 有一个增量运算符 $inc
解决了这个问题。查看完整 description
我有一个变量 quantity
和另一个变量 new quantity
。每当用户输入 new quantity
时,它都应该添加到之前的数量总和中。
我有一个创建表单和一个编辑表单。 quantity
字段在创建表单上,而 newlyAdded
字段在编辑表单上
这是架构片段
const mongoose = require('mongoose'),
stocksSchema = new mongoose.Schema({
name: String,
number: Number,
quantity: Number,
newlyAdded: Number,
sold: Number,
newlySold: Number,
balance: Number,
description: String,
...
ejs snippet
<% let justAdded = item.quantity + item.newlyAdded %>
<td><%= justAdded %></a></td>
例如,如果quantity = 10
和用户输入12
,新数字应该是22
,如果再次添加10
,新数字应该是32
但它显示 22
因为它不存储以前的添加。我如何解决这个问题?我知道编辑表单不适合这个。
一般来说,你有两种方式。
- 当用户输入值时,只需将值更新到 mongo db 中新添加的字段并刷新。如果您不刷新,则该值不会更改 newAdded 因为对服务器的请求已经完成。
2.update 到服务器的值相同。但是,不是重定向,您可以直接控制 dom。 使用 jquery 或 javascript.
这是使用示例jquery。
<input id="input" type="text" .. />
<td><a id="val"><%= justAdded %></a></td>
...
<script>
var oldVal = Number('<%= item.quantity %>');
$("#input").on("propertychange change keyup paste input", function() {
var currentVal = Number($(this).val());
var newVal = oldVal + currentVal;
if(currentVal == newVal) {
return;
}
$("#val").text(newVal);
oldVal = newVal;
});
</script>
发现我用于数据库的 mongodb 有一个增量运算符 $inc
解决了这个问题。查看完整 description