Javascript 在AngularJS中执行Ruby脚本
我使用AngularJS安装了一个简单的todo应用程序来测试它的功能,一旦我运行了基本功能,我就决定给数据添加持久性 我决定使用MySQL建立一个本地环境,为了让事情有点曲折,我决定使用Ruby而不是PHP来访问服务器 问题来自于执行Ruby脚本和检索数据。现在,当我尝试在AngularJS中使用$http时,它所做的只是返回ruby脚本,而不是执行它 这里有相关代码供参考 todo.js: todos.rb:Javascript 在AngularJS中执行Ruby脚本,javascript,mysql,ruby,angularjs,Javascript,Mysql,Ruby,Angularjs,我使用AngularJS安装了一个简单的todo应用程序来测试它的功能,一旦我运行了基本功能,我就决定给数据添加持久性 我决定使用MySQL建立一个本地环境,为了让事情有点曲折,我决定使用Ruby而不是PHP来访问服务器 问题来自于执行Ruby脚本和检索数据。现在,当我尝试在AngularJS中使用$http时,它所做的只是返回ruby脚本,而不是执行它 这里有相关代码供参考 todo.js: todos.rb: 现在,数据的控制台日志只返回todos.rb中写入的所有内容。如何让它实际执行脚本
现在,数据的控制台日志只返回todos.rb中写入的所有内容。如何让它实际执行脚本并返回todos数组?ruby代码需要位于知道如何将其作为ruby脚本调用的服务器后面,而不仅仅是将其作为纯文本返回。如果您使用的是普通的本地URL,那么就没有服务器,而且无法正常工作。如果Pointy是正确的,您可以非常快速地对其进行测试。打开命令行,转到todo.js所在的目录,并启动python服务器python-msimplehttpserver 8000。然后将浏览器指向本地主机:8000@pointy,我认为这可能是问题所在。因为这只是一个简单的玩具应用程序,所以我没有考虑配置。我目前在IDE中使用MAMP,我认为Apache不支持Ruby。知道如何将Apache配置为使用Ruby或其他支持Ruby和MySQL的IDE吗?
var module = angular.module('app', []);
module.service('MySQLConnect', function($http) {
this.getData = function() {
$http.get('api/todos.rb').success(function(data) {
console.log(data);
});
return response;
}
});
module.controller('TodoCtrl', function($scope, MySQLConnect) {
$scope.todos = MySQLConnect.getData();
});
require 'mysql'
begin
connection = Mysql.new 'localhost', 'root', 'root', 'todo', 8889, '/Applications/MAMP/tmp/mysql/mysql.sock'
results = connection.query("SELECT * FROM todos")
todos = []
results.each_hash do |row|
todos.push(row)
end
todos
rescue Mysql::Error => e
puts e.errno
puts e.error
ensure
connection.close if connection
end