如何将数据 node.js 发送到 ejs 文件,并使用 angular.js 获取数据

How send data node.js to ejs file, and get data with angular.js

我对此有疑问。

我不明白使用 node.js 将数据发送到 ejs 文件并使用 Angular.js

获取这些数据的方法

Node.js部分

app.get('/', function(req, res) {
  connection.query('SELECT * FROM movie', function(err, rows, fields) { 
    res.render('pages/index', {
        results: JSON.stringify(rows)
    });
  })
});

Angular部分

$http.get('/').then(function(data) {
  $scope.movies = data;
  console.log(data);
});

index.ejs部分

<main ng-controller="mainController">

  {{ movies }}

</main>

NodeJS 在服务器端执行,ejs 模板在服务器端呈现。

Angular在页面加载后在客户端(浏览器端)执行。

您目前正在做的是:

  • 在浏览器中访问url/
  • 激活 NodeJS 中的 '/' 路由
  • 呈现模板 index.ejs
  • 从模板生成的这个 html 页面被发送回您的浏览器并显示
  • 您的浏览器在此 html 页面中找到一个 javascript 部分,它在 '/'
  • 上运行异步请求
  • 这个请求再次返回到 NodeJs,重新渲染 ejs 模板,并给你一个 html 页面作为响应。这就是您在控制台中看到的内容。

你需要:

  • 要么有一个静态页面 javascript 在 NodeJS 路由上请求,它只回答 json。此 JSON 将用于 javascript 向页面添加内容。
  • 或者在 ejs 模板引擎的帮助下在服务器端生成包含所有所需信息的完整页面。 (然后您不需要 Javascript 中的异步请求来获取内容)