无法将数据从快递传递到ejs?

时间:2019-03-08 11:40:13

标签: mysql express ejs

我尝试通过将对象转换为JSON并在控制台上显示JSON数据的方式,将对象转换为JSON,从而使用library(tidyverse) #Get Unique countries country <- unique(gsub('\\..*$|_.*', '', list.files(path = ".", pattern = "csv"))) #Loop for (i in country) { dat <- list.files(path = ".", pattern = i) %>% map(read_csv) %>% reduce(rbind) assign( paste("df", i, sep = "_"), dat) rm(dat) } 将数据从js文件(sample.js)传递到ejs,但是尝试传递显示错误的< / p>

  

TypeError:无法在字符串上创建属性“ _locals”

可以帮上忙,告诉我如何在ejs文件中调用它们

3 个答案:

答案 0 :(得分:0)

res.send()用于发送数据,无需指向ejs文件

res.send将数组作为参数(res.send([body])”,您可以在{{data}}这样的ejs中获取它

例如

NODEJS     res.send({message:'hello'})

filename.ejs

Traceback (most recent call last):
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo_lib\triangulation.py", line 759, in __getitem__
    return self.cache[x]
KeyError: (0, 0, 0, 0, 0, 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/.../test.py", line 70, in <module>
    res = shgo(resid, bounds, constraints=con1)
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo.py", line 423, in shgo
    shc.construct_complex()
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo.py", line 726, in construct_complex
    self.iterate()
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo.py", line 869, in iterate
    self.iterate_complex()
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo.py", line 890, in iterate_hypercube
    self.g_args)
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo_lib\triangulation.py", line 121, in __init__
    self.n_cube(dim, symmetry=symmetry)
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo_lib\triangulation.py", line 172, in n_cube
    self.C0.add_vertex(self.V[origintuple])
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo_lib\triangulation.py", line 767, in __getitem__
    index=self.index)
  File "C:\Users\...\Python\Python36\site-packages\scipy\optimize\_shgo_lib\triangulation.py", line 681, in __init__
    if g(self.x_a, *args) < 0.0:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

由于Express 5x不支持您可以使用的<div>{{ message }}</div> or <%= JSON.stringify(message) %> 方法

res.send()

(您不承认自己是速成版)

答案 1 :(得分:0)

您正在向视图发送数据,因此请以此更新代码并尝试

   res.render("filename",{
                        data:"hello"
                      });

或者您可以传递整个数据

 res.render("filename",{data:data});

然后在您的ejs文件中像这样访问它

 <div> <%= data %> <div>

答案 2 :(得分:0)

请注意,尽管您的问题有其他答案建议您这样做,但也不应不要使用.ejs中的res.render扩展名。
当您调用res.render('myView')时,ejs在名为myView.ejs的文件夹(已设置为ejs使用的默认文件夹)中寻找名为views的模板

例如:

res.render('myView.ejs',{
  data:data,
  foo:'foo'
});

ejs将寻找一个名为myView.ejs.ejs的视图(否则它可能会全部失败)。

要访问模板上的数据,请执行以下操作:

app.js:

app.get('/somePathHere', function(req, res) {
  res.render('myView',{
    data:data,
    foo:'foo'
  });
});

myView.ejs:

<% data.forEach(function(item) { %>
    //do something

<% }); %>

<%= foo %>

请注意,在访问变量时,您使用<%= varNameHere %>,在编写任何类型的函数时,您将省略=