【问题标题】:MongoDB Cloud9 ConnectionMongoDB Cloud9 连接
【发布时间】:2016-11-21 01:39:32
【问题描述】:

所以,我想知道是否有办法从 html 连接到我在 Cloud9 中设置的 mongoDB。我的意思是,我已经从终端连接到数据库,一切都像魅力一样工作,但我需要在我的脚本中的 html 文档中做一些事情,当我尝试调用包含此代码的函数时,它什么也不做

var MongoClient = require('mongodb').MongoClient
    , format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/ingesoft', function (err, db) {
    if (err) {
        throw err;
    } else {
        console.log("successfully connected to the database");
    }
    db.close();
});

我已将相同的代码保存到“file.js”中,并使用节点 file.js 从控制台运行它,它输出到控制台日志“成功连接到数据库”,以及运行 mongo 连接的终端显示我与数据库的另一个连接。问题是,当我尝试在脚本中运行该代码时,它不起作用。对不起,我是 mongo 的新手。

任何帮助将不胜感激

【问题讨论】:

    标签: javascript node.js mongodb cloud9-ide


    【解决方案1】:

    为了简化您的问题,以下是正在发生的事情:

    • node file.js 包含您问题中的代码正在运行
    • 将相同的代码粘贴到您的 html 文件中是不行的

    那么,追根究底,我们先问:运行node file.js和把代码放到html里有什么区别?

    • 不同之处在于node ... 在您的Cloud9 工作区上运行(我们称它为服务器机器)。
    • 您的 MongoDB 服务器也在该服务器计算机上运行
    • 您安装的mongodb npm 包也存在于服务器计算机上
    • 网址:mongodb://127.0.0.1:27017/ingesoft 引用 127.0.0.1 这是您服务器的本地主机

    而浏览器上的代码:

    • 代码正在您客户的机器上运行
    • 那台机器没有你的 Mongodb 服务器
    • 浏览器通常不支持require
    • 如果您捆绑代码并使用 webpackbrowserify 之类的东西,则可以执行要求。也许你这样做了?
    • 如果您确实打包了所有内容,您需要打包的 mongodb 包是否已打包?
    • mongodb 包可以从客户端运行吗?
    • 网址:mongodb://127.0.0.1:27017/ingesoft 引用 127.0.0.1 这是您客户机器的本地主机

    基本上,从上面可以看出,两者非常不同。

    如果你想和你的数据库交谈,很多人会走以下路线:

    • 制作一个实现某种形式的 REST API 的服务器应用程序
    • REST API 与您的数据库对话
    • 您的客户端代码知道如何与 REST API 通信并获取所需数据

    这样,您只使用您的服务器与您的 MongoDB 通信,而客户端可以通过互联网与您的服务器通信。

    当然,这过于简单化了,但我希望这能解决您的困惑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2015-11-28
      • 1970-01-01
      相关资源
      最近更新 更多