数据库连接在node.js文件中有效,但在脚本标记中无效

时间:2018-02-28 03:04:59

标签: javascript html node.js mongodb mlab

我试图连接到我的MongoDB数据库(或实际上是MongoLab的服务器),当我在name.js文件中有代码时它工作正常但是当我有这个代码时它没有工作它位于<script>标记内的HTML文件中。

另外,我的文件夹中只有这2个文件,而且我使用的是Cloud9框架。

这是我的JavaScript代码:

// JavaScript File
var MongoClient = require('mongodb').MongoClient;
var url = "x";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mkndb");
  var myobj = { name: "Company Inc", address: "Highway 37" };
  dbo.collection("test").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("1 document inserted");
    db.close();
  });
});

谢谢

2 个答案:

答案 0 :(得分:0)

您需要的包mongodb是一个node.js包,它只在服务器端运行,而不在浏览器中运行。

要在客户端访问MongoDB,您可以使用REST Web服务。 它允许通过XmlHttpRequests进行基本查询。

要启用它,您必须使用--rest参数启动mongod 然后你可以这样查询:

http://127.0.0.1:28017/someDatabase/someCollection/?filter_name=someFilter

答案 1 :(得分:0)

您似乎正在使用Mongodb节点客户端。在带有标记的html页面中插入脚本将无法以您期望的方式工作。你几乎没有办法达到你想要的目的:

1.您可以构建一个nodejs服务器组件,它可以处理来自浏览器应用程序的请求。然后,nodejs服务器与mongodb交互并进行响应。这可以通过几种方式实现。
一个。在Lambda中部署nodejs。此处的模式详细信息 - https://docs.aws.amazon.com/cloud9/latest/user-guide/lambda-functions.html。然后,您可以从此处给出的浏览器进行连接 - https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/browser-invoke-lambda-function-example.html
湾部署在EC2中

2.如果您不想构建/部署node.js服务器,请尝试使用mLab Data API。 (http://docs.mlab.com/data-api/)。这仅适用于您尝试连接MongoLab的新特殊情况