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

时间:2015-09-09 09:28:24

标签: mysql angularjs node.js ejs

我有这个问题。

我不了解使用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)
    });
  })
});

角度部分

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

index.ejs part

<main ng-controller="mainController">

  {{ movies }}

</main>

1 个答案:

答案 0 :(得分:0)

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

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

您目前正在做的是:

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

你需要:

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