Javascript 如何在html文件中呈现数组?-Node.js,ejs
我正在做一个项目,它将使用txt文件中给定的坐标并绘制它们。 我现在的问题是:我试图使用ejs将坐标渲染到html文件中,但它就是不能正常工作。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
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两次?-我想发送和,但一次只能发送一个。。