【问题标题】:How to echo out information from mongodb with node js如何使用节点 js 从 mongodb 中回显信息
【发布时间】:2017-10-07 19:56:21
【问题描述】:

在 PHP 中,很容易从 MySql 数据库中回显信息并将结果与​​ html 属性封装在这样的查询中:

$query = "SELECT * FROM files ORDER BY ID DESC";
        $response = mysql_query($query);
        while($row = mysql_fetch_array($response))  
              echo '<img src="'.$row["image"].'" alt="..." />';

我将如何在 MongoDB 服务器的节点 js 中做类似的事情? 我的收藏是这样的:

"_id" : ObjectId("59106cc31bcace320c33a9d3"),
"path" : "uploads/bicycle.jpg",
"originalname" : "bicycle.jpg",
"__v" : 0

提前致谢!

【问题讨论】:

  • Node.js 不是 PHP,我们只能庆幸这是事实。
  • 不过,肯定有一种方法可以完成我正在寻找的东西吗?如果没有,那就没什么好高兴的了:)
  • 看起来你什么都没试过……简单搜索 node 和 mongo 会得到很多结果

标签: node.js mongodb


【解决方案1】:

好的,所以 node 的工作方式不同,node js 将在服务器上运行完全不同的 js,而不是 html 文件中的一些嵌入代码。

当然,你可以像这样完成你想要的

-从https://www.npmjs.com/package/mysql获取mysql包 - 从https://www.npmjs.com/package/mongoose 获取 mongoDB 的 mongoose 包(非常可靠且广泛使用)

然后你的节点 js 文件像这样

var express = require("express");

var mysql = require('mysql');
var connection = mysql.createConnection({
  host: 'localhost',
  user: 'web',
  password: '',
  database: 'my_database'
});
var mongoose = require('mongoose');

var app = express();

app.get("/getmyimg", function(req, res) {
  connection.query("SELECT * FROM files ORDER BY ID DESC", (err, rows) => {
    for (let row of rows) {
      resp.send('<img src="' + row["image"] + '" alt="..." />')
    }
  })
})
var CollectionSchema = mongoose.Schema({
        path: String,
        original_name: String
    });

CollectionName = mongoose.model('CollectionName',CollectionSchema);

app.get("/getmyimgmongo", function(req, res) {
  mongoose.connect('mongodb://localhost/my_database1');
  collectionName.find({}, (err, results) =>{
    for (let row of results) {
      resp.send('<img src="' + row["image"] + '" alt="..." />')
    }
  })
})

app.listen(4200, function() {
  console.log("Listening to port 4200");
});

现在只需加载 localhost:4200/getmyimg 即可完成任务

【讨论】:

  • 谢谢先生!正是我想要的!
  • 编辑:无法读取未定义的属性“查找”。当我尝试访问 /getmyimgmongo 时,它给了我一堆错误。 collectionName is not defined。我将如何定义?我的收藏名为files 有什么想法吗?
  • 哦,是的,忘了提到您必须创建架构才能在猫鼬中访问该集合,更新了答案。
  • 不幸的是,我仍然无法让它显示。 /getmyimgmongo 不加载。它只是不断尝试加载。有任何想法吗?请查看github.com/joelfolkesson/myapp/blob/master/imagefile.js
【解决方案2】:

为了实现这一点,您将向 mongo db 服务器发出 HTTP 请求。此处对此进行了解释:

https://docs.mongodb.com/ecosystem/tools/http-interfaces/#http-interfaces

服务器将返回一个 JSON 响应,其中包含其正文中所需的数据。使用 JavaScript 客户端,您可以附加一个引用键路径值的子项。

var img = document.createElement("img");
img.src = response.path;
document.getElementById("page").appendChild(img);

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 2018-07-27
    • 2023-01-10
    • 2023-04-11
    • 1970-01-01
    • 2017-07-23
    • 2021-12-17
    • 2019-10-06
    相关资源
    最近更新 更多