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
- 如果您捆绑代码并使用
webpack
或 browserify
之类的东西,您可以执行要求。也许你这样做了?
- 如果您确实打包了所有内容,那么您需要打包的
mongodb
包是否已打包?
- 客户端的
mongodb
包可以运行吗?
- url: mongodb://127.0.0.1:27017/ingesoft 引用
127.0.0.1
这是您客户机器的本地主机
基本上,从上面可以看出,两者非常不同。
如果你想与你的数据库交谈,很多人会走以下路线:
- 制作一个实现某种形式的 REST 的服务器应用程序 API
- REST API 与您的数据库对话
- 您的客户端代码知道如何与 REST API 对话并获取所需数据
这样,您只需使用您的服务器与您的 MongoDB 对话,客户端可以通过互联网与您的服务器对话。
当然,这过于简单化了,但我希望这能解决您的困惑。
所以,我想知道是否有办法从 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
- 如果您捆绑代码并使用
webpack
或browserify
之类的东西,您可以执行要求。也许你这样做了? - 如果您确实打包了所有内容,那么您需要打包的
mongodb
包是否已打包? - 客户端的
mongodb
包可以运行吗? - url: mongodb://127.0.0.1:27017/ingesoft 引用
127.0.0.1
这是您客户机器的本地主机
基本上,从上面可以看出,两者非常不同。
如果你想与你的数据库交谈,很多人会走以下路线:
- 制作一个实现某种形式的 REST 的服务器应用程序 API
- REST API 与您的数据库对话
- 您的客户端代码知道如何与 REST API 对话并获取所需数据
这样,您只需使用您的服务器与您的 MongoDB 对话,客户端可以通过互联网与您的服务器对话。
当然,这过于简单化了,但我希望这能解决您的困惑。