Я изучаю nodejs, и у меня есть проект, в котором я хочу, чтобы пользователи публиковали данные форм, которые затем заполняют html-таблицу, расположенную в public / index.html .
В данный момент я записываю отправленные данные в коллекцию базы данных, используя следующий код:
const mongoose = require('mongoose')
const express = require('express');
const app = express();
const server = app.listen(3000);
app.use(express.json()); // for retrieving form data
app.use(express.static('public'));
mongoose.connect('mongodb://localhost/class', {useNewUrlParser: true})
.then( () => console.log('Connected to class database'))
.catch( () => console.error('Connection attempt to class database failed'))
const personSchema = new mongoose.Schema({
name: String,
date: {type: Date, default: Date.now}
})
const Person = mongoose.model('Person', personSchema)
app.post('/join_class', (req,res) => {
res.send('... joining class')
console.debug(req.body.name)
// document.getElementById('class_table').insertRow(req.body.name)
joinClass(req.body)
})
async function joinClass(data){
console.log(data)
person = new Person({
name: data.name
})
await person.save();
}
Моя проблема в том, что мне нужны те же данные для заполнения таблицы HTML, расположенной в моем public / index.html , но, конечно, у меня нет доступа к объекту документа в index.js. Файл index.html находится ниже:
<!DOCTYPE html>
<html lang="en">
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.dev.js'></script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- <script src="/client.js"></script> -->
<title>TestING</title>
</head>
<body>
<table id='class_table'>
<tr><th>Class</th></tr>
<tr><td>testing</td></tr>
</table>
</body>
</html>
Итак, как мне создать событие / предупреждение mongoDB, чтобы при вставке данных поста в базу данных те же данные были доступны для index.html, где я МОГУ использовать объект документа для заполнения таблицы?