NodeJS Variablen an Client senden



  • Hoi,

    weiß zufällig wer, wie ich variablen in node vom server an den client schicken kann?
    also zb

    var express = require('express')
    ,   app = express();
    
    app.set('view engine', 'ejs');
    
    app.get('/', function(req, res) {
        var data = [
            {
                name: "john doe"
            },
            {
                name: "james foe"
            }
        ];
        res.render('index', {
            data: data
        });
    });
    
    var server = app.listen(3122, function() {
        console.log('running');
    });
    

    Ich kann jetzt auf clientseite über data iterieren und alle datensätze ausgeben, was aber wenn ihc das ganze gerne im clientseitigen js code hätte? Also das ich clientseitig zB sowas hab

    var data /* = ??? */;
    /* do sth with data */
    

    Weil das reine drüber iterieren hilft mir so wenig, wenn es sich um dynamische daten handelt, weil es ist doch ein riesenaufwand neue datensätze hinzuzufügen / bestehende zu löschen/bearbeiten wenn ich die eigentlichen daten nicht im clientseitigen js code habe.

    Danke



  • Gefunden (lustig wie sich die ergebnisse bei google ändern wenn man nach "nodejs pass variable to js" anstatt "nodejs pass variable to javascript" sucht).

    Code sieht jetzt so aus:

    var express = require('express')
    ,   app = express();
    
    app.set('view engine', 'ejs');
    
    var data = [
        {
            name: "john doe"
        },
        {
            name: "james foe"
        },
        {
            name: "hans zimmer"
        }
    ];
    
    app.post('/add', function(req, res) {
        data.push("jack dale");
        res.json(data);
    });
    
    app.get('/', function(req, res) {
        res.render('index', {
            title: data
        });
    });
    
    var server = app.listen(3122, function() {
        console.log('Running.');
    });
    

    Bzw client

    <script>
    var data = <%- JSON.stringify(title) %>
    
    $('#add').click(function() {
        $.ajax({
            url: '/add',
            method: 'post',
            success: function(d) {
                console.log(d);
            }
        });
    });
    
    for(var i = 0; i < data.length; i++) {
        $('#container').append(data[i].name);
    }
    </script>
    

    Was ich aber noch gern wissen würde is wie ich die clientseite jetzt update nach dem klick auf den add button, jemand eine Idee?


  • Mod

    Am einfachsten per JS Framework am Client. zB Backbone.js

    Schau dir passend dazu auch TodoMVC an.


Anmelden zum Antworten