繁体   English   中英

通过JavaScript访问mongodb + nodjs?

Access mongodb+nodjs from javascript?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用nodejs + mongodb运行服务器:

let MongoClient = require('mongodb').MongoClient.connect("mongodb://localhost:27017/mydb", { useNewUrlParser: true } ),

(async () =>{
   let client;
   try {
      client = await MongoClient;
      ...

我正在创建一些数据可视化,并且我需要一种简单的方法来从javascript访问后端数据,这可能吗? 理想情况下,我想完全访问。

2 个回复

您必须建立一个桥梁,例如使用REST API:

 // server.js
 // npm install express, body-parser, mongodb
 const app = require("express")();
 const bodyParser = require("body-parser");
 const db = require("mongodb").MongoClient.connect(/*...*/);

 app.use(bodyParser.json());

 app.post("/findOne", async (req, res) => {
  try {
   const connection = await db;
   const result = await connection.findOne(req.body);
   if(!result) throw new Error("Not found!");
   res.status(200).json(result);
  } catch(error) {
   res.status(500).json(error);
  }
 });

 // ... all those other methods ...

 app.listen(80);

这样,您可以轻松地在客户端上连接到它:

 // client.js
 function findOne(query) {
   const result =  await fetch("/findOne/", {
     method: "POST",
     body: JSON.stringify(query),
     headers:{
      'Content-Type': 'application/json'
     }
   });

   if(!result.ok) throw await result.json();

   return await result.json();
}

注意:我希望您知道,如果您没有正确验证请求/添加身份验证,还可以允许一些陌生人使用您的数据库。

为了安全起见,您永远不要这样做,但是假设您可以在节点应用程序上制作一个AJAX端点或WebSockets服务器,将输入直接传递给mongoDB并将输出直接返回给客户端。

使用AJAX请求或WS编写简单的API以防止用户破坏您的数据库是一种更好的做法。

1 Nodjs从路由器调用中间件?

我想了解有关模块化代码的一些想法,这是我的想法。 我在nodejs中使用快递服务器。 我考虑过创建4个文件夹: 1.HTML静态文件夹,其中包含3个不同的HTML文件,其中包含客户端在不同路径/ form1,/ form2,/ form3上的表单。 填写表格后,我将对/ form1_post / ...

2 在 nodjs 和 javascript 中完成 forloop 后的返回值

我有这个函数来返回字符串数组。 但是我对这段代码有一个问题,在这个函数中不等待完成forLoop然后return model ,循环尚未完成但返回值。 有什么问题 ? 我怎样才能解决这个问题? 更新 : 我写了这段代码,但仍然有这个问题: ...

4 如何检查对象数组中是否存在对象 Mongodb Nodjs

我正在研究 Mongodb nodejs 项目! 我有一个名为 games 的数组,我在其中推送所有游戏! 但问题是,如果我重新测试我的功能,它会再次推送相同的游戏! 所以我想先检查一下游戏(逐个游戏)是否已经存在于数组中!! 你能帮我吗 ...

7 将响应从 nodjs fs 转换为 web 文件 api

在浏览器中读取和解析文件的包 我需要在 nodejs 中使用相同的包 来自 Web 浏览器 api 的响应和来自节点 js fs 的响应不同。 是否可以将来自节点的 fs 的响应转换为与浏览器中的响应相同? ...

9 从Snap访问MongoDB

我正在尝试使用mongodb haskell驱动程序访问mongo(快照驱动程序似乎在snap> 0.5中被破坏)。 到目前为止,这是我所知道的: 我知道我需要在那里使用liftIO,因为mongo动作发生在IO monad中,我想把它拉回来。 我理解失败的地方是编译拼接的 ...

10 从Talend访问MongoDB

我正在尝试从talend访问mongoDB。 我设置所有参数都没问题,因为它可以毫无问题地连接。 问题是我收到以下错误: 如果我使用Talend中使用的相同用户/密码登录shell,我可以在该DB上查询。 为什么失败? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM