如何使用 Nodejs 在远程 Mongodb 上进行 CRUD 操作
How to make CRUD operations on a remote Mongodb with Nodejs
我最近开始玩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/
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用angularJS进行CRUD操作
- Meteor将CRUD操作限制为管理员或文档所有者
- ColdFusion - 查询数据表和 CRUD 操作的方法
- 如何使用javascript读取.sql文件并支持CRUD操作
- 如何使用angularjs,nodejs和mysql执行CRUD操作
- 如何使用 Nodejs 在远程 Mongodb 上进行 CRUD 操作
- CRUD策略,每个CRUD操作使用一个或两个调用
- 具有成员数据的非CRUD操作
- 使用REST API在angularjs中执行CRUD操作
- 如何在PHP CRUD编辑操作中获取日期和复选框数据
- 如何在服务中定义 CRUD 操作 (AngularJS)
- $resource function $save(),它到底做什么,它如何支持服务器端数据的CRUD操作
- web服务——如何用Javascript在Account以外的实体上执行CRUD操作