如何使用 Nodejs 在远程 Mongodb 上进行 CRUD 操作

How to make CRUD operations on a remote Mongodb with Nodejs

本文关键字:CRUD 操作 Mongodb 何使用 Nodejs      更新时间:2023-09-26

我最近开始玩NodeJS——我只知道它是一种服务器端技术。我所做的和想要完成的如下:

我有一个在远程服务器上运行的MongoDB。我正在使用nodejs mongodb驱动程序,只需执行以下操作,我就可以连接到数据库,然后创建一个文档:

// main.js
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://remote_url:27017/mymongo', function(err, db) {
    var document = {a:"1", b:"2"};
    db.collection('collection').insert(document, function(err, records) {
        if (err) throw err;
    }
}

如您所知,上面的代码需要控制台调用,例如: node main.js ,但是我有一个带有多个文本字段的 HTML5 前端,我想通过一个简单的按钮单击事件将这些字段传递到我的数据库。我的问题是:

如果我像上面那样直接连接到远程 mongodb 真的很愚蠢吗?我可以从我的 HTML 页面调用脚本吗?如果可以,那么与将其重新设计为客户端-服务器结构相比,有什么缺点?

最后,我认为上述正确的做法是在远程服务器上创建一个带有nodejs的http服务器,它将客户端的请求传递给mongodb驱动程序。我说的对吗?

您可以尝试构建一个REST API来使用vanilla NodeJS或您选择的其他框架与MongoDB服务器进行交互。 您可以尝试鲍西斯*。

*免责声明:我是鲍西斯的主要作者

如果我像上面那样直接连接到远程 mongodb 真的很愚蠢吗?

不,使用本机MongoDB驱动程序是非常标准的。但是,我不是连接然后立即与您的数据库交互,而是构建应用程序,以便您连接,然后等待 HTTP 调用或其他函数与数据库交互。

我可以从我的 HTML 页面调用脚本吗?

绝对。在您的节点.js应用程序中,我将构建一个侦听某些HTTP调用的Web服务器。在 HTML 中,提供指向应用程序正在侦听的 Web 服务器的 GET、POST 等的链接或表单。

例如,您的前端可能看起来像一个<form action="/document/add" method="post">。然后,main.js保留为在 node.js上运行的后端代码,但对其进行修改以侦听对 /document/add 的 POST 调用。当调用该 URL 时,使用已发布的表单数据运行插入代码。

您还可以创建一个 AJAX 解决方案来侦听表单提交并在后台提交 POST,等待响应,并相应地更新页面。

与将其重新设计为客户端-服务器结构相比,有哪些缺点?

优点和缺点将非常特定于您要创建的应用程序类型。

我认为要完成上述操作的正确做法是在远程服务器上创建一个带有nodejs的http服务器,它将客户端的请求传递给mongodb驱动程序。我说的对吗?

你是对的。这是使用node.js和MongoDB的标准做法。我将推荐 Express 来创建您的 API 以与数据库进行交互。它提供了开箱即用的 URL 路由等功能。但是,您可以构建自己的平台,也可以使用适用于您的应用程序/环境的任何其他平台。

你应该使用 MongoDB 的 REST 接口。我非常喜欢困猫鼬。它在python上运行,可能需要一分钟的时间来设置,但值得付出努力。

这是作者的博客,它帮助我开始了。

这是部署到 Heroku 的演示应用程序, http://nodejs-crud.herokuapp.com/,教程链接 http://codeforbrowser.com/blog/crud-operations-in-node-js-and-mongodb/