如何传递数组以在html文件中显示它? - Node.js

时间:2014-01-23 10:27:45

标签: javascript html node.js

我目前正在处理一个项目并且我的代码存在一些问题..

我的问题:我的node.js正在分析一个txt文件并从中读取坐标..这些坐标应该显示在html文件中的图形中。两个代码都已创建,但我如何连接它们?

node.js:

    var fs = require('fs');


function readLines(input, done) {
    var arr = [];
    var remaining = '';

    input.on('data', function(data) {
        remaining += data;
        var index = remaining.indexOf('\n');
        while (index > -1) {
            var line = remaining.substring(0, index);
            remaining = remaining.substring(index + 1);
            func(line);
            index = remaining.indexOf('\n');
        }
    });

    input.on('end', function() {
        if (remaining.length > 0) {
            func(remaining);
            done(arr);
        }
    });

    function func(data) {
        arr.push(data.split(/\s+/g)); //Splitfunktion für Komma 
    }
}


var input = fs.createReadStream('test.txt');
readLines(input, done);

//abschließen 
function done(arr) {

    var obj = {};
    var key1 = arr[0][0];
    var key2 = arr[0][1];
    obj[key1] = [];
    obj[key2] = [];

    arr.shift();

    arr.forEach(function (item) {
        obj[key1].push(item[0]);
        obj[key2].push(item[1]);
    });

    console.log('X:', obj[key1]);
    console.log('Y:', obj[key2])
} 

Html文件:

<!doctype html>
<html>
    <head> 
    <!-- ... --> 
    </head>
    <body>  
     <!-- ..... --> 
    <script>
        var lineChartData = {
            labels : [380, 390 ..<!--  X-Coordinates here --> 
            datasets : [
                {
                    data : [0.5, 
                            0.6, 
                            0.7,  
                            <!-- Y-Coordinates here --> 
                            ]
                }
            ]

        }

    <!-- ... ---> 
    </script>
   </body>
</html>

希望你能帮忙!

问候,

JS

1 个答案:

答案 0 :(得分:0)

我建议你使用expressjs。使用nodejs创建Web应用程序非常低级。您必须通过节点npm install express安装express并从那里开始。

部分代码已剪切以提供帮助

var express = require('express');
var app     = express();

app.use(express.bodyParser());
app.set('view engine', 'ejs');
app.register('.html', require('ejs'));
app.get('/', function(req, res) {

    // Handle file reading in here and return object
    res.render('index.html', {obj: obj}); //where object is the obj is the object holding the arrays
});

app.listen(8080, function() {
  console.log('Server running at http://127.0.0.1:8080/');
});

然后在index.html中执行..脚本内部标记。

<script>
    console.log(<%= cordinates.obj %>);
</script>

免责声明:我没有对此进行过测试,但这只是为了帮助您