【问题标题】:Angular 2 accessing mongoDB dataAngular 2 访问 mongoDB 数据
【发布时间】:2019-03-22 18:56:03
【问题描述】:

我有一个 nodejs 项目并创建了一个数据库一个集合并添加了一些数据。

创建数据库的url为:mongodb://localhost:27017/

代码在这里:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

我的视角也有角度。

我的问题是:

我可以像往常一样使用 http 模块访问从 Angular 创建的 mongoDB 中的数据吗?

我在 Angular 中添加的目标网址是 mongodb://localhost:27017/ 吗?

【问题讨论】:

  • Mongo 本身并不公开 HTTP 接口:stackoverflow.com/questions/7386740/…
  • 所以我也必须创建一个api才能从浏览器访问数据?
  • Angular 是客户端框架。 MongoDB 是服务器端数据库。您需要在服务器上公开公共 api,然后从 Angular(通过 HTTP)进行查询。
  • 我正在从 nodeJs express 服务器运行 mongo。我希望当我从节点运行它时,它会监听一些 url

标签: node.js angular mongodb typescript angular7


【解决方案1】:

您需要做的就是使用 expressJS 创建一个 REST API,它的处理程序应该执行 mongodb 查询,您可以从 Angular 向 REST API 发起 HTTP 请求。

Basic Express HelloWorld

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
   // You can write mongo queries here
})

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

【讨论】:

    【解决方案2】:

    正如 m90 所述,Mongo 本身并不公开 HTTP 接口。

    您可以使用 Node.JS REST 包装器,或者,您可以在 Express 端点中公开您的 Angular 应用程序将用来获取所需数据的端点。

    然后在 Angular 中创建一个服务,使用HttpClient 向 Express 发出 Http 请求以获取数据并显示它。

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2017-06-20
      • 2017-12-10
      • 1970-01-01
      • 2016-06-11
      相关资源
      最近更新 更多