【发布时间】:2018-10-24 19:33:15
【问题描述】:
我正在使用 express 运行 node.js 服务器。 我的服务器需要执行一些操作,例如解析文件日志、提取 ipAddresses 并使用外部 Api 将它们转换为坐标。 此坐标用于在我的 html/ejs 页面中显示谷歌地图。
我想,一旦我在地图上使用 ("/") 启动/刷新主页,调用所有这些操作,并通过地图内的市场显示坐标。
所以我的想法是
app.get("/" , function(req,res){
parsingLog();
res.render("homepage.ejs")
})
其中 parsingLog() 是第一个函数,其他函数在该函数内连接。在循环结束时,我获得了一个对象数组,其中包含要传递给前端 javascript 以显示地图的坐标。但是使用 app.get 中的代码,代码会运行,但没有结果。如果我在没有 app.get 的情况下运行代码,我将获得所有正确的结果。 我不明白问题出在哪里,不幸的是,这是我进入 node.js/express 的第一步。 感谢所有帮助我的人
【问题讨论】:
-
如果您在 parsingLog 函数中调用一些外部 API,那么它必须是异步的。您的代码似乎在 parsesLog 完成运行之前尝试呈现 homepage.ejs 并且未从日志文件/外部 API 获得结果。这段代码sn -p 不够分析问题
-
在您告诉我 ejs 在获取数据之前渲染后,我尝试做一件事。我将 res.render 放在 setTimeout 中。 app.get("/" , function(req,res){ parsingLog(); setTimeout( function () { res.render("homepage.ejs"); }, 3000); });而且效果很好。非常感谢
标签: node.js express google-maps-api-3