кнопка должна удалить конкретный элемент на стороне сервера - PullRequest
0 голосов
/ 15 января 2019

Я работаю над приложением, которое отслеживает мои расходы с помощью javascript, nodejs, express и handelbars механизма шаблонов.

Итак, у меня есть div "list", который содержит все расходы.(у меня есть кнопка добавления рядом со списком div, не видимая на картинке)

image

Everytime a I add an expense , I add the div "obj" with a delete button ,a "B" button and some information about the expense.

here is the code in my html:

 {{#each expArr}}X   B  {{date}}  {{name}}  {{value}}  {{description}}  {{/ each}} 

Теперь мой бэкэнд работает на сервере NodeJS с express.

вот мой файл index.js:

var express = require('express');
var router = express.Router();


var expArr = [];


router.get('/', function(req, res, next) {
  res.render('index' , {expArr: expArr} );
});

 router.post('/addtodo', function (req, res, next) {



 var exp = new Object();

 exp.name = req.body.name;
 exp.value = req.body.val;
 exp.date = req.body.date;
 exp.description = req.body.descr;




 expArr.push(exp);
 res.redirect('/');

  });
 router.post('/removetodo', function (req, res, next) {


 expArr.pop();

 res.redirect("/");

 });


  module.exports = router;  

В addtodo я просто добавил всю информацию в массив на сервере (позже я добавлю базу данных).

Теперь мой вопрос:

УдалитьКнопка на каждом счете должна удалить правильный счет.Другими словами, я хочу, нажав кнопку удаления, удалить правую запись в массиве на сервере.

Как мне это сделать?

Спасибо!

1 Ответ

0 голосов
/ 15 января 2019

вы храните все в памяти, принимая это как должное, вы можете начать с использования простого объекта, а не массива для хранения ваших данных

expArr = {}

, а затем добавьте уникальный идентификатор, например, хэш или дату в мс для каждого экземпляра

var exp = new Object();
exp.id = new Date().getUTCMilliseconds();
exp.name = req.body.name;
exp.value = req.body.val;
exp.date = req.body.date;
exp.description = req.body.descr;

expArr[exp.id] = exp;

теперь обязательно передайте от клиента правильный идентификатор, если вы хотите удалить расход

router.post('/removetodo', function (req, res, next) {
 if(expArr[req.body.id]) {
   delete expArr[req.body.id];
 }
 res.redirect("/");
});
...