Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在html文件中呈现数组?-Node.js,ejs_Javascript_Arrays_Node.js - Fatal编程技术网

Javascript 如何在html文件中呈现数组?-Node.js,ejs

Javascript 如何在html文件中呈现数组?-Node.js,ejs,javascript,arrays,node.js,Javascript,Arrays,Node.js,我正在做一个项目,它将使用txt文件中给定的坐标并绘制它们。 我现在的问题是:我试图使用ejs将坐标渲染到html文件中,但它就是不能正常工作。Ejs总是只渲染:未定义 代码如下: var http = require('http'), fs = require('fs'), express = require('express'), app = express(); app.use(express.bodyParser()); app.s

我正在做一个项目,它将使用txt文件中给定的坐标并绘制它们。 我现在的问题是:我试图使用ejs将坐标渲染到html文件中,但它就是不能正常工作。Ejs总是只渲染:未定义

代码如下:

var http = require('http'),  
    fs = require('fs'),
    express = require('express'), 
    app     = express(); 
    app.use(express.bodyParser());
    app.set('view engine', 'ejs');
    app.engine('html', require('ejs').renderFile); 
    app.use(express.static(__dirname + '/public'));

//Readerfunction 
function readLines(input, done) {
   //..... 

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]); // all the variables are logged correctly. 
      console.log('Y:', obj[key2]); 

    app.get('/', function(req, res) {   
          res.render('graph.html', {cordinates: obj});  
}); 
    app.listen(8080, function() {
  console.log('Server running at http://127.0.0.1:8080/');
});
}
在html文件中:

<%= cordinates.obj %> 

我希望你能帮助我,解决这个问题!:-)

您好,
JS

好吧,我认为问题在于:您将
obj
传递给
render
作为
coordinates
,因此您应该直接在模板中使用
coordinates
变量,不是
obj
属性,它是不存在的。我不确定它是否会被渲染为正确的数组,也许你需要一个循环来打印它的元素。

为什么obj属性不存在?因为模板中的
坐标
变量将是
obj
,所以你实际上在那里调用
obj.obj
。明白了吗。主要问题在于渲染时没有定义obj。例如,我可以将cordinates更改为test.obj,但它仍然没有定义。问题在于如何在模板中访问它。如果服务器代码为:
res.render('graph.html',{cordinates:obj})模板代码应为:
渲染的第二个参数将模板变量
坐标映射到
obj
值。是否可以调用res.render两次?-我想发送和,但一次只能发送一个。。