javascript - 本地主机 jquery.google-search-master 控制台错误 - $.GoogleSearch 不是构造函数

标签 javascript jquery json node.js autocomplete

我在端口 3000 上有一个本地主机服务器,我使用 Node.js 和 Express 设置它来在本地运行网站。一般来说,我对编码还很陌生,最近才学习这些框架,所以我可能缺少对概念的关键理解,但在网上进行了大量搜索后,我已经陷入了死胡同。

我想操纵我网站上的谷歌搜索数据,特别是从表单中获取城市名称数据,将其发送到谷歌搜索,然后取回数据。现在我只想通过 console.log 返回数据来查看它告诉我什么,为此我找到了这个不错的存储库:

https://github.com/sdepold/jquery.google-search#license

下载 ZIP 后,我尝试将文件合并到我自己的文件夹层次结构中,将文件复制到我自己的文件夹中,如下所示:

我将 jquery.google-search.min.js、jquery-1.7.2.min.js、jquery.google-search.spec.js、jquery.google-search.js 和 buster.js 放入我的 js 中“公共(public)”下的文件夹。

所有这些都是我放入文件夹的 ZIP 中的文件,但还有一些其他文件,例如“.travis.yml”或“package.json”或“compiler.jar”,但我没有复制。我有自己的 package.json 文件,其中包含以下内容:

{
  "name": "myapp",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "nodemailer": "2.5.0",
    "express": "~4.13.4",
    "ejs": "~2.4.2",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0"
  }
}

jquery.google-search 中的 package.json 是:

{
  "author": "Sascha Depold <sascha@depold.com> (htp://depold.com)",
  "name": "jquery.google-search",
  "description": "Execute google searches within your client-side javascript.",
  "version": "0.1.4",
  "homepage": "https://github.com/sdepold/jquery.google-search",
  "repository": {
    "type": "git",
    "url": "git://github.com/sdepold/jquery.google-search.git"
  },
  "dependencies": {},
  "devDependencies": {
    "jquery.skeleton": "~0.6.0",
    "buster": "~0.6.2"
  },
  "optionalDependencies": {},
  "engines": {
    "node": "*"
  },
  "scripts": {
    "test": "npm run minify && npm run buster-test",
    "buster-test": "node_modules/.bin/buster-test",
    "buster-capture": "(npm run buster-server &) && sleep 2 && npm run buster-capture-browser",
    "minify": "java -jar dist/compiler.jar src/*.js --js_output_file=dist/jquery.`pwd|sed -e 's/.*jquery\\.//'`.min.js",
    "buster-capture-browser": "type -P open &>/dev/null && open 'http://localhost:1111/capture' || firefox 'http://localhost:1111/capture'",
    "buster-server": "node_modules/.bin/buster-server"
  },
  "main": "src/jquery.google-search.js"
}

我不知道我是否应该复制其他文件或对 json 执行某些操作...这甚至可能不是问题。还有一个名为“MIT-LICENSE”的文件,我不确定是否需要该文件..?

无论如何,一旦我启动服务器并转到本地主机,然后在表单中写入一些文本,控制台(我有 Firefox)就会显示:

Constructor Error Image

为了通过表单查找城市,我使用了 geobytes 自动完成小部件。

我的相关代码如下:

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.google-search.js">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

<!-- Autocomplete Cities -->
    <script>
    jQuery( function () {
      var find;

      function getCityDetails (cityname) {  //this is a function I created
        jQuery.getJSON(
          "http://gd.geobytes.com/GetCityDetails?callback=?&fqcn="+cityname,
            function searchGoogle (data) {
              find = new $.GoogleSearch().search(city + " weather", {}, function(data) {
              console.log(find);
              })
            }
         );
      }

     jQuery("#f_elem_city").autocomplete({

      source: function (request, response) {
       jQuery.getJSON(
        "http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term,
        function (data) {
          response(data);
        }
       );
      },
      minLength: 3,
      select: function (event, ui) {
       var selectedObj = ui.item;
       jQuery("#f_elem_city").val(selectedObj.value);
       getCityDetails(selectedObj.value); //this is a function I created
       return false;
      },
      open: function () {
       jQuery(this).removeClass("ui-corner-all").addClass("ui-corner-top");
      },
      close: function () {
       jQuery(this).removeClass("ui-corner-top").addClass("ui-corner-all");
      }

     });

     jQuery("#f_elem_city").autocomplete("option", "delay", 100);

    });
  </script>

我假设我的问题出在我的 getCityDetails 或 searchGoogle 函数中,其参数或其位置在某种程度上不符合堆栈顺序,或者它是一种阻止我做我想做的事情的闭包,但一般来说,您可以看到我从存储库复制了 Google.Search 代码,因此创建该对象应该不会有问题...

此外,由于错误指向jquery.min.js,而且它是一个缩小的文件,我不知道问题出在哪里,但它似乎与自动完成功能有关,而不是谷歌搜索。

我在这里很困惑,因为尝试进一步调试它超出了我目前的知识水平......所有帮助将不胜感激。

谢谢!

最佳答案

sdepold 创建了 https://github.com/sdepold/jquery.google-search#license存储库提醒我有关此搜索功能的 Google API 已被废弃,因此无法以这种方式使用。

关于javascript - 本地主机 jquery.google-search-master 控制台错误 - $.GoogleSearch 不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38497508/

相关文章:

javascript - LocalStorage 更新元素导致与 JQuery 中的 JSON 重复

javascript - 虚拟 DOM 创建顺序。哪个节点先创建?

javascript - 如何在 javascript 中使用 RoutePrefix 获取 Web API 方法的有效 url

javascript - 在前置时触发 li 上的点击事件

javascript - 如何检索具有编号名称的 JSON 对象键

java - 有没有一种简单的方法可以使用 Java 将术语插入到 Elasticsearch QueryDSL 中?

python - 在python中从json中提取特定字段

javascript - 使用 jeditable 控制文本区域的大小

javascript - 如何将对象拆分为嵌套对象? (递归方式)

javascript - 根据用户的文本字段输入将用户发送到特定 URL