Включить таблицу в req.body - PullRequest
       6

Включить таблицу в req.body

0 голосов
/ 25 ноября 2018

в ответ на мои 2 предыдущих вопроса: получить данные из асинхронной функции и добавить идентификатор в флажок, используя цикл

Я сейчас пытаюсь получить доступ кпроверил флажки, используя nodejs и выразил в таблице, когда я нажимаю кнопку на моей странице результатов, но при попытке войти в req.body я получаю только пустую строку или неопределенную.

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

Вот мой код:

Сервер :

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const TorrentSearchApi = require('torrent-search-api')
TorrentSearchApi.enableProvider('Yggtorrent','login', 'password')
//TorrentSearchApi.enableProvider('1337x');
app.use(express.static('public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.set('view engine', 'ejs')

var torrentsG = []; //empty global variable to store the torrents

const search = async query => {
  const loweredQuery = query.toLowerCase()
  const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 5)
  return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent)
torrentsG = JSON.parse(torrents);
//console.log(torrentsG); 
res.redirect('/results');
})
app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})


app.get('/results',(_ ,res) => res.render('results', {torrents:torrentsG}))
app.post('/results',function (req,res){
console.log(req.body);

})

Клиент

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" type="text/css" href="/css/table.css">
 </head>
<body align="left">
<div class="container">
 <form action="/results" method="post">

<input name="torrent" type="text" class="ghost-input" placeholder="Search a Torrent" required>

<table name="tableau" class="table" align="left">
      <thead>
        <tr>
        <th>Download </th>
        <th>Title</th>
        <th>time </th>
        <th>seeds </th>
        <th>size </th>
        <th>provider </th>
        <th>link </th>
      </thead>


  <tbody name="TBODY">
      <% for (var i = 0; i < torrents.length; i++) { %>
        <tr>
          <td> <input type="checkbox" name="checkbox" id="checkbox" Class="checkbox"> </td> 
          <td> <%= torrents[i].title%> </td>
          <td> <%= torrents[i].time%> </td>
          <td> <%= torrents[i].seeds%> </td>
          <td> <%= torrents[i].size%> </td>
          <td> <%= torrents[i].provider%> </td>
          <td> <%= torrents[i].link%> </td>
   </tr>
<% }%>
  </tbody>

</table>
<input type="submit" class="ghost-button" value="Download selected torrents to seedbox">

</form>

</div>
</body>


</html>

Как вы можете видеть, я пытался дать имена родительским элементам флажков, чтобы они по крайней мере появлялись в req.body () без какого-либо успеха.С другой стороны, "torrent" текстовый ввод правильно записан в req.body

Заранее спасибо за ваши ответы, и я надеюсь, что это будет последним в этом "проекте"

...