MongoDB Cloud9 连接

MongoDB Cloud9 Connection

所以,我想知道是否有办法从 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" 和 运行 中,并输出到控制台日志 "successfully connected to the database" 以及终端运行ning mongo 的连接向我显示了与数据库的另一个连接。问题是,当我尝试 运行 我的脚本中的代码时,它不起作用。抱歉我的无知运行ce 我是 mongo.

的新手

任何帮助将不胜感激

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

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

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

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

而浏览器上的代码:

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

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

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

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

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

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