Как отобразить добавленный документ пожарного магазина Firebase в приложении Node / Express? - PullRequest
0 голосов
/ 08 ноября 2019

В app.post() я хочу отобразить элементы, которые я добавил, через представление todo.ejs.

В app.delete(), я также хочу удалить любой элемент, когда я щелкну по нему.

я определяю такие:

const bodyParser =require('body-parser');
const urlencodedParser = bodyParser.urlencoded({ extended: false });
const firebase= require('firebase');
const firebaseConfig = {}; // (i hid config data)
const firebaseapp=firebase.initializeApp(firebaseConfig); 
const db=firebase.firestore();

todocontroller.js

app.get('/todo',(req,res)=>{

    db.collection('todos').onSnapshot(snapshot=>{
        const todos=snapshot.docChanges();
        res.render('todo',{todos:todos});
    });

});
app.post('/todo',urlencodedParser,(req,res)=>{

    db.collection('todos').add(req.body).then(()=>{
        res.json(req.body);


    }).catch(err=>{
        console.log(err);
    });
});
app.delete('/todo/:item',(req,res)=>{
    const id=req.params.item.id;
    db.collection('todos').doc(id).delete().then(()=>console.log(id)).catch(err=>{
        console.log(err);
    });
});

todo-list.js:

$(document).ready(function(){

    $('form').on('submit', function(){

        let item = $('form input');
        let todo = {item: item.val()};

        $.ajax({
          type: 'POST',
          url: '/todo',
          data: todo,
          success: function(data){
            //do something with the data via front-end framework
            location.reload();
          }
        });

        return false;

    });

    $('li').on('click', function(){
        let item = $(this).text().replace(/ /g, "-");
        $.ajax({
          type: 'DELETE',
          url: '/todo/' + item,
          success: function(data){
            //do something with the data via front-end framework
            location.reload();
          }
        });
    });

});

todo.ejs:

<div id="todo-table">
        <form method="POST" action="/todo">
            <input type="text" name="item" placeholder="add new item..." required>
            <button type="submit">Add item</button>
        </form>
        <ul>
            <%  todos.forEach(change=>{ %>
            <%  const todo= change.doc; %>

                <li data-id="<%= todo.id  %>"><%= todo.data().item  %></li>

            <% }); %>

        </ul>
    </div>

Выше приведены все js-файлы, которые я написал для создания простого приложения todo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...