Я пытаюсь создать приложение, в котором пользователь будет создавать листинг для торговли, и сейчас я застреваю при удалении списков, когда они выбираются в таблице на главной странице. У меня есть форма, которая, как я полагаю, будет заполнена данными из массива, переданного на страницу из маршрутизатора. Однако всякий раз, когда я пытаюсь открыть console.log, чтобы увидеть, передаются ли элементы или данные могут быть получены, я получаю страницу с сообщением о том, что вход (выбранный), который передается, не определен. Я что-то упустил или это вообще возможно в node.js / express?
Вот код на странице мопса с формой, которая составляет форму и таблица для списков
mixin getLists(listings)
each item in listings
tr
td.listcell
input(type="checkbox" name="selected" value=item.numID)
td.listcell #{item.name}
td.listcell #{item.data}
block.content
.holder
.listtable
h4.title Current Listings:
form(method="post" action="/deleteListings")
table.listings
tr
td.listcell
td.listcell Name
td.listcell Status
td.listcell Data
+pullinglists(lists)
input(type="submit" value="Delete Selected Listings")
Вот код моего роутера для сайта, который занимается продвижением списковк панели инструментов и пытаюсь удалить их
const express = require('express');
const User = require('../core/user');
const router = express.Router();
const nodemailer = require('nodemailer');
const user = new User();
var listings = [];
router.get('/dashboard', (req, res, next)=> {
let user = req.session.user;
if(user)
{
res.render('dashboard', {opp:req.session.opp, name:user.username, listings:listings});
return;
}
res.redirect('/');
});
router.post('/generateListing', (req, res, next)=>{
if(req.body.name == null)
{
res.redirect('/dashboard');
}
var temp={name : req.body.name,
status: "Pending",
otherData: req.body.data,
numID: numberID
};
numberID++;
listings.push(temp);
res.redirect('/dashboard');
});
router.post('/deleteListing', (req, res, next)=>{
var i;
console.log(selected.value);
if(req.body.selected != null)
{
for(i=0; i<req.body.selected; i++)
{
//remove selected items from the array
}
}
res.render('/dashboard');
});
Я несколько новичок в узле и выражаю, поэтому я прошу прощения, если есть что-то действительно очевидное, что я здесь упускаю.
РЕДАКТИРОВАТЬ - Спасибо MikZuit за указание на нужное мне исправление.
Вместо
console.log(selected.value);
Это должно было быть
console.log(req.body.selected.value);
Что привело меня к следующему к удалению записи формы
if(req.body.selected != null)
{
var i;
for(i=0; i<req.body.selected.length; i++)
{
var elementToBeDeleted = listings.indexOf(req.body.selected[i]);
listings.splice(elementToBeDeleted, 1);
}
}
res.redirect('/dashboard');