Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 我怎样才能建立一个快速的;“哑巴”;我机器上的服务器?(电话间隙可访问)_Javascript_Eclipse_Rest_Cordova_Xmlhttprequest - Fatal编程技术网

Javascript 我怎样才能建立一个快速的;“哑巴”;我机器上的服务器?(电话间隙可访问)

Javascript 我怎样才能建立一个快速的;“哑巴”;我机器上的服务器?(电话间隙可访问),javascript,eclipse,rest,cordova,xmlhttprequest,Javascript,Eclipse,Rest,Cordova,Xmlhttprequest,我正在尝试创建一个简单的PhoneGap应用程序,它可以从服务器请求一些数据。我对服务器端代码非常陌生,我的目标只是评估在外部服务器上使用phonegap的可行性 我的应用程序已经准备好了phonegap(使用Javascript编写,我正在使用phonegap构建,并有一个AVD来测试应用程序),但我能找到的唯一持久化方法是处理本地存储。因此,要将我的问题分解为更清晰的部分: 是否有一种“快速且肮脏”的方法来设置一个简单的服务器,可以从我的phonegap应用程序访问 首选的请求方法是什么?我

我正在尝试创建一个简单的PhoneGap应用程序,它可以从服务器请求一些数据。我对服务器端代码非常陌生,我的目标只是评估在外部服务器上使用phonegap的可行性

我的应用程序已经准备好了phonegap(使用Javascript编写,我正在使用phonegap构建,并有一个AVD来测试应用程序),但我能找到的唯一持久化方法是处理本地存储。因此,要将我的问题分解为更清晰的部分:

  • 是否有一种“快速且肮脏”的方法来设置一个简单的服务器,可以从我的phonegap应用程序访问

  • 首选的请求方法是什么?我一直在研究Ajax/REST/jQuery,但老实说,我很难理解这些类型的请求在我的应用程序(或服务器端)中“存在”的位置


  • 我正在使用EclipseKeplar,并且更喜欢避免使用命令提示符的方法

    你真的需要更多的方法让事情持续下去吗?那么你可能会考虑WebSQL:

    但是如果你真的需要一个小型虚拟服务器(你问题的第一部分),这取决于你目前的经验背景。安装PhoneGap后,可能会安装NodeJS,这意味着它是一个轻量级、快速且“即时”的服务器

    因此,您可以将此脚本保存在文件系统中的某个位置,例如作为
    /home/meee/dummy.js

    var http = require('http');
    http.createServer(function (req, res) {
    
      var arguments = require('url').parse(req.url, true); 
      var query = arguments['query']; // JS Object with parsed GET string arguments
    
      var command = '';
      if (typeof query['command'] !== 'undefined') {
        command = query['command'];
      }
    
    
      // Here would be the well designed command handler
      var resultFromCommandHandler = "Work result for command: " + command; 
      var statusFromCommandHandler = "OK"; // what a liar
    
    
      var response = { "status" : statusFromCommandHandler, "result" : resultFromCommandHandler };
    
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end( JSON.stringify(response) );
    
    }).listen(1337, '127.0.0.1');
    
    console.log('Server running at http://127.0.0.1:1337/');
    
    然后从命令行运行:

    node /home/meee/dummy.js
    > Server running at http://127.0.0.1:1337/
    
    然后启动web浏览器并输入以下url:

    http://127.0.0.1:1337/?command=getList&page=orders
    
    浏览器会显示来自服务器的答案。因此,您可以运行最小的thinkable服务器。通过一些修补,您将在Eclipse中获得一个运行配置,让节点使用您的虚拟脚本运行。我甚至希望Node和Eclipse有现成的插件,因为这个软件非常流行

    现在,从你的PhoneGap应用程序中,只要尝试调用URL并向命令处理程序添加有用的内容,那么你就可以轻松地在应用程序和服务器之间进行交互

    此外,正如我提到的,您可能已经安装了tomcat服务器,所以请使用这个。如果你有一台mac电脑,可能会有一些Apache,试着启动它。随着时间的推移,我开始使用TurnKeyLinux,它是VMware/Fusion映像中的一个出色的微型灯安装()

    关于问题的第2部分,如何联系服务器:

    • AJAX是一种方法,而不是某种具体的协议。您使用AJAX来获取部分webside,一旦从服务器获得它们,您就在webside中构建它们。您可以使用任何客户端语言进行AJAX调用
    • REST是一种通信原则,您可以使用定义良好的URL进行通信。它属于像SOAP这样的web架构定义的巨大领域,但它比SOAP轻得多
    • jQuery是一个库,它简化了编写优秀Javascript客户端的过程。它包含一个有用的$.ajax()方法,您可以使用它
    现在,我建议忘记SOAP/REST等,只需用一个按钮在PhoneGap中编写一个小小的HTML框架,并使按钮的点击事件触发特定的AJAX调用,使用JQuery实现。使用AJAX成功事件,在PhoneGap应用程序中显示服务器的结果。此设置是您的概念证明,可以轻松调试

    之后,尝试定义应用程序所需的一些用例和CRUD。从中,您将获得所需的命令和参数,您可以将其实现到虚拟服务器中


    也许在这一点之后,您必须做一些进一步的研究,阅读一些开源服务器应用程序,阅读一些定义和概念。请注意,在编写web服务器应用程序时存在许多陷阱,因此不要做出一些硬性的最后期限承诺,它在您的第一个应用程序中不会起作用。此外,您还必须很快重新设计我们的虚拟HTML框架,以避免收到令人窒息的意大利面代码。

    对于已经使用Java但不想安装Node.js的用户,我通常使用spring boot和Java的几乎0行代码:


    依赖项由Maven管理。如果您不熟悉Maven:有很多指南,您可以尝试以下代码-

    var express = require("express");
    
    var app = express();
    
    app.get("/", function(req, res){
        res.send("Get methods");
    
    });
    
    app.use(express.static("public")); // put the static data folder name here which contain your UI code.
    
    var server = app.listen(8081, function(){
        var host = server.address().address;
        var port = server.address().port;
        console.log(host +" : "+port);
    
    });
    

    按照

    中给出的说明进行操作谢谢您提供了如此详细的答案-您提供了一些有希望的起点!我的荣幸:-请考虑投票,如果它对你有持久的价值。谢谢