Node.js 获取选中express js复选框的项目的字段总数

Node.js 获取选中express js复选框的项目的字段总数,node.js,express,Node.js,Express,我有一个食品项目列表,我希望能够通过勾选相应的复选框,然后计算其字段的总和,从列表中选择项目,例如,我有称为卡路里、碳水化合物、脂肪、蛋白质、盐、糖的字段,如果我在列表中选择两个项目并单击“计算”按钮,它将打印卡路里的总和,碳水化合物、脂肪、蛋白质、盐、糖这两种食物 <!doctype html> <html> <head> <title>List foods page</title> </head> <body>

我有一个食品项目列表,我希望能够通过勾选相应的复选框,然后计算其字段的总和,从列表中选择项目,例如,我有称为卡路里、碳水化合物、脂肪、蛋白质、盐、糖的字段,如果我在列表中选择两个项目并单击“计算”按钮,它将打印卡路里的总和,碳水化合物、脂肪、蛋白质、盐、糖这两种食物

<!doctype html>
<html>
<head>
<title>List foods page</title>
</head>
<body>
<h1> List foods page </h1>
<h3>Display all foods stored in the database including name, typical values, unit of the typical value, calories, carbs, fat, protein, salt, and sugar of the food item here:</h3>
<ul>
<% availableFood.forEach(function(food_item){ %>
        <form method="POST" action="/topic7/mid-term/calculate">
                <p><input type="checkbox" name="checkbox" value=<%= food_item.name %>>
                <input id="qty" type="text" name="qty" value="quantity"/>
                <%= food_item.name %>, <%= food_item.typical_values %>, 
                <%= food_item.unit_of_the_typical_value %>, <%= food_item.calories %>, 
                <%= food_item.carbs %>, <%= food_item.fat %>, <%= food_item.protein %>, 
                <%= food_item.salt %>, <%= food_item.sugar %></p>
        </form>
<% }) %>
<form method="POST" action="/topic7/mid-term/calculate">
        <input type="submit" value="Calculate sum" />
</form>
</ul>
</body>
</html>

在SQL语句中使用集合而不是单个值,并与中的
而不是
=
进行比较

这些金额需要单独计算。将
命名为
,使结果更易于阅读

let sqlquery = "SELECT SUM(calories) AS calories, SUM(carbs) AS carbs, SUM(fat) AS fat FROM food_item WHERE name IN (?)";

在SQL语句中使用集合而不是单个值,并与
中的
而不是
=
进行比较

这些金额需要单独计算。将
命名为
,使结果更易于阅读

let sqlquery = "SELECT SUM(calories) AS calories, SUM(carbs) AS carbs, SUM(fat) AS fat FROM food_item WHERE name IN (?)";

谢谢我也有一个问题,因为result.message未定义,所以我无法获取复选框的值。如何让“计算”按钮获取复选框的值?如果我将按钮放在与复选框相同的表单中,它只能返回一个复选框的复选框值,但我希望它返回多个复选框的复选框值。它以查询字符串的形式发送所有值,例如
checkbox=food1&checkbox=food2&checkbox=food3
。在NodeJS中,在本例中,
bodyParser.urlencoded
req.body.checkbox
中放置一个数组。如果这对您不起作用,您会使用哪个主体解析器?我使用这个
app.use(bodyParser.urlencoded({extended:true}))在我的js文件中。我上面贴的表格没有问题吗?我想它可能有问题,因为它告诉我结果是未定义的。或者
res.send
打印出错误的内容吗?如果您不确定问题出在哪里,请执行
控制台.log
或尝试直接发回
req.body.checkbox
,以检查是否有效。如果结果未定义,则查询似乎有问题。你使用哪个数据库?我用MySQL测试了我的答案。您是否根据我的回答更新了查询?另外,尝试res.send只发送结果,忽略字符串连接。我发回了
req.body.checkbox
,它确实为我提供了名称,但只为一个条目提供了名称,即使多个条目都勾选了复选框。我正在使用mysql数据库。是的,我根据你的回答更新了我的问题。只发送结果也会取消查找。谢谢。我也有一个问题,因为result.message未定义,所以我无法获取复选框的值。如何让“计算”按钮获取复选框的值?如果我将按钮放在与复选框相同的表单中,它只能返回一个复选框的复选框值,但我希望它返回多个复选框的复选框值。它以查询字符串的形式发送所有值,例如
checkbox=food1&checkbox=food2&checkbox=food3
。在NodeJS中,在本例中,
bodyParser.urlencoded
req.body.checkbox
中放置一个数组。如果这对您不起作用,您会使用哪个主体解析器?我使用这个
app.use(bodyParser.urlencoded({extended:true}))在我的js文件中。我上面贴的表格没有问题吗?我想它可能有问题,因为它告诉我结果是未定义的。或者
res.send
打印出错误的内容吗?如果您不确定问题出在哪里,请执行
控制台.log
或尝试直接发回
req.body.checkbox
,以检查是否有效。如果结果未定义,则查询似乎有问题。你使用哪个数据库?我用MySQL测试了我的答案。您是否根据我的回答更新了查询?另外,尝试res.send只发送结果,忽略字符串连接。我发回了
req.body.checkbox
,它确实为我提供了名称,但只为一个条目提供了名称,即使多个条目都勾选了复选框。我正在使用mysql数据库。是的,我根据你的回答更新了我的问题。仅发送结果也会导致取消查找。