如何使用javascript从render express方法在客户端获取数据?

如何使用javascript从render express方法在客户端获取数据?,express,Express,我曾经使用MVC javascript框架,如主干或Angular,我想充分使用express,但有些事情我不知道如何做 当我使用javascript客户机框架时,我通过res.send调用AJAX GET从express获取实体,但仅使用express渲染引擎,如何在javascript代码的客户端获取使用res.render'index'{User:{name:'bob'}发送的实体 我尝试在客户端直接呼叫: <script> console.log(JSON.stringify

我曾经使用MVC javascript框架,如主干或Angular,我想充分使用express,但有些事情我不知道如何做

当我使用javascript客户机框架时,我通过res.send调用AJAX GET从express获取实体,但仅使用express渲染引擎,如何在javascript代码的客户端获取使用res.render'index'{User:{name:'bob'}发送的实体

我尝试在客户端直接呼叫:

<script>
console.log(JSON.stringify(User));
</script>

我知道如何使用ejs视图引擎在html中获取它,但是如何直接从javascrit中获取它?

您正在寻找类似客户端渲染的东西吗?那么RequireJS就是适合你的。res.send将数据发送回客户端javascript框架,res.render呈现页面或模板。如果您还需要其他内容,请务必告诉我。

稍后再回答此问题,但我偶然发现了此问题,并在获得此问题之前花了很长一段时间处理它,我想我会向未来的访问者分享此问题

与前面提到的V31一样,res.render在JavaScript中呈现模板而不首先传递数据。像这样的变量只引用它们的服务器端定义,只要您的EJS模板实际上是一个EJS模板——一旦呈现为页面,它就不再是EJS模板了。正如Express文档所说,render返回视图的呈现HTML。换句话说,说console.logUser.name client-side是试图访问仅存在于服务器中的对象

你可以这样处理:

<script>
    console.log('<%= JSON.stringify(User) %>');
</script>

myscript.js现在可以访问服务器用户对象中定义的User.name和User.bestfriend,并且可以以您认为合适的任何方式在客户端使用该数据。

Hi,我只想使用javascript从客户端的服务器端获取发送的数据,我不确定requireJS是否这样做,如果我理解它使我们能够在客户端加载模块,那么您是正确的Ludo,requirejs首先为您编写的模板创建js文件,然后您可以直接从客户端调用这些模块来呈现页面。要从服务器向客户端发送数据,可以使用response.send或response.write。好的,显然,我不需要在客户端使用任何特定的模块,我只想找回用户对象,所以我想我必须使用res.send,但我还需要渲染我的模板,我不能同时做这两件事吗?或者我需要先渲染视图,然后进行AJAX调用以获取用户对象吗?啊,明白了,res.render将直接渲染模板,而不首先在javascript中传递数据。要么您必须使用ajax调用nodejs服务器,然后在server res.send的成功回调函数中接收数据,要么您使用我在尝试解决此问题时遇到的一个选项来描述。我需要从后端到客户端javascript获取一个包含lat/lng的数据项字符串。我可以得到要渲染的数据,但我不能得到它,所以我可以使用它。你能详细说明一下我将如何做到这一点吗?你把const bob=…,等放在哪里?你在代码块上面的段落在我心目中不匹配。谢谢你的帮助。你会把它放在你的视野中。下面是一个在EJS视图中如何显示的示例:忽略红色突出显示脚本部分,直到视图实际以呈现形式从服务器发送到客户端,脚本部分才被激活。此时,变量todaysinal等对浏览器没有意义,因此我们必须在发送之前将其值嵌入EJS。谢谢。我最终使用jQuery并使用AJAX,这真是太过分了,但它确实奏效了。将来,我会尝试更多地使用你的方法。我给了它一个滚动,但由于我的观点已经使用帕格,并试图与EJS…无论如何,它似乎更简单的路线,我已经有了一点点的经验。
<script>
    console.log('<%= JSON.stringify(User) %>');
</script>
<script>
   const bob = '<%= User.name %>';
   const alice = '<%= User.bestfriend %>';
</script>
<script src='/javascripts/myscript.js'></script>