Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS中执行Ruby脚本_Javascript_Mysql_Ruby_Angularjs - Fatal编程技术网

Javascript 在AngularJS中执行Ruby脚本

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中写入的所有内容。如何让它实际执行脚本

我使用AngularJS安装了一个简单的todo应用程序来测试它的功能,一旦我运行了基本功能,我就决定给数据添加持久性

我决定使用MySQL建立一个本地环境,为了让事情有点曲折,我决定使用Ruby而不是PHP来访问服务器

问题来自于执行Ruby脚本和检索数据。现在,当我尝试在AngularJS中使用$http时,它所做的只是返回ruby脚本,而不是执行它

这里有相关代码供参考

todo.js:

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