How to change front-end html using node.js

后端 未结 1 1616
再見小時候
再見小時候 2021-01-01 04:34

So I want to make changes on my front-end html file from my node.js backend. How would I do so? (Any suggestions with examples would be greatly appreciated)

Here\'s

相关标签:
1条回答
  • 2021-01-01 05:02

    You can't modify from the node side in the way that I think your're trying to do. You can send back a response to the client side, and on that response, you can trigger a function ( that you can write in JQuery ) that will change the DOM and save what needs to be changed in local storage ... here is an example ...

    //server.js
    router.post('/change',function(req,res){
    
        // the message being sent back will be saved in a localSession variable
        // send back a couple list items to be added to the DOM
        res.send({success: true, message: '<li>New list item number 1</li><li>New list item number 2</li>'});
    });
    

    Here is the front end ...

    //index.html
    //body
    <h1>Hello World</h1>
        <ul>
            <li>List item 1</li>
             //li items with class change will be changed on button click
            <li class='change'>List item 2</li>
            <button class="trigger">Trigger Change</button>
        </ul>
    
    <script>
    
       //if we have data stored in the session variable, then use the data to change the DOM text
        if(window.localStorage.permanentData){
            $('li.change').replaceWith(window.localStorage.permanentData);
        }
    
        //change DOM function
        function changeDom(){
            //ajax call
             $.ajax({
                      url: 'http://localhost:8080/change',
                      method:'POST',
                      data: {list: "some info"}
                    }).done(function(data){
                        //if we have a successful post request ... 
                        if(data.success){
                            //change the DOM &
                            //set the data in local storage to persist upon page request
                            localStorage.setItem("permanentData", data.message);
                            var savedText = localStorage.getItem("permanentData");
                            $('li.change').replaceWith(savedText);
    
                            return;
                        }
                    }).fail(function(){
                       //do nothing ....
                        console.log('failed...');
                        return;
                    });
            };
    
        //trigger change DOM  function
        $('.trigger').click(function(){
            changeDom();
        });
    
    </script>
    
    0 讨论(0)
提交回复
热议问题