NodeJS mongoDB获取ReferenceError

时间:2018-01-24 18:17:14

标签: javascript html node.js mongodb

我需要建立一个查询我当地mongodb的小网站。所有应该只在localhost上正常工作。因此我决定从NodeJS开始。因此,当我单独运行它们时,所有javascript函数都正常工作,但如果我通过我的html代码调用此函数,我会得到一个ReferenceError: require is not defined以及之后的TypeError: MongoClient is undefined

因此,为了您的理解,我将发布几行代码:

  1. 我的脚本 - 在html中导入:

    <script src="scripts/queryDB.js"></script>

  2. 我的按钮

  3. <button onclick="startQuery()" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
       <i class="material-icons">search</i>
    </button>

    如果您需要有关我的HTML的更多信息,请询问。

    1. 我的javascript文件
    2. var MongoClient = require('mongodb').MongoClient;
      var url = "mongodb://localhost:27017/";
      
      function oneResult(parkhausName, jahr, monat, tag, minuten) {
          MongoClient.connect(url, function(err, db) {
              if (err) throw err;
              var dbo = db.db("nosqlvl");
              var query = { parkhausName: parkhausName, 'datetime.year': jahr, 'datetime.month': monat, 'datetime.day': tag, 'datetime.time': minuten};
              dbo.collection("parkhaus").find(query).toArray(function(err, result) {
                  if (err) throw err;
                  console.log(result);
                  db.close();
              });
          });
      }
      
      function startQuery(){
          alert("Really start?");
          oneResult("LANXESS arena 1", "2018", "1", "2", 680);
      }

      所以我不知道问题是什么,但也许你们中的一个可以帮助我。请原谅我的坏英语。谢谢

2 个答案:

答案 0 :(得分:0)

默认情况下,浏览器不支持

您可以使用RequireJS

之类的东西

实际上,你不能也不应该这样做。 mongodb驱动程序不适用于浏览器。这是因为,通常,您不会直接从网站向数据库发送查询。

相反,你应该运行一个nodeJS http服务器,它可以从前端接收HTTP请求,然后像你已经那样查询数据库,并将结果发送回前端。

我建议使用expressajax,如this教程中所述。

答案 1 :(得分:0)

为什么不使用AJAX请求?您可以在此处找到更多信息:Ajax requests。通常,当您想要将前端与后端连接时,您应该使用ajax请求。