javascript - 从javascript访问mongodb+nodjs?

标签 javascript node.js mongodb

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

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

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

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

最佳答案

你必须 build 一座桥梁,例如使用 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();
}
<小时/>

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

关于javascript - 从javascript访问mongodb+nodjs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306480/

相关文章:

javascript - 服务中的方法在执行时未定义,但在登录到控制台时未定义

javascript - Cors 安全性与 cookie

node.js - 使用 node.js 应用程序启动 docker 容器会产生错误;提示 PATH

java - Spring Data 总是返回一个带有反应式 mongo 存储库的空数组

无法编译 mongo-c-driver 示例

javascript - asp.net - 使用 js 执行 AsyncPostBack

javascript - 无法使用 'in' 运算符在...中搜索 'length' 需要更改字符串吗?

node.js - 如何在nodejs中使用sweetalert?

mongodb - 如何快速查找数组中至少有一个元素的所有 mongo 文档

javascript - 将多个值从js页面传递到php页面