node.js - 上传和存储图像

标签 node.js mongodb express mongoose

是的,我知道 Uploading images using Node.js, Express, and MongooseHow can I store images in mongodb with node.js?但解决这些问题并不是我想要实现的。我希望能够使用 Schema 将图像存储在二进制数据库中(Mongodb with Mongoose)。

那么,您知道使用组合 Node.js、Express 和 Mongodb 的任何应用程序吗?如果有这个组合 + Jade 的应用程序最好,但我想这要求太多了。

提前致谢!

最佳答案

与 mongodb 一起提供的 GridFS 可能是一种选择。 nodeJS(无论express还是jade)读写文件的代码如下:

const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
const fs = require('fs');

const mongodb= require('mongodb');

const connection = client.connect();

const dbName = 'myProject';
const connect = connection;
connect.then(() => {
  console.log('Connected successfully to server');
  const db = client.db(dbName);
  const bucket = new mongodb.GridFSBucket(db, { bucketName: 'myCustomBucket' });  
  fs.createReadStream('./test.txt').pipe(bucket.openUploadStream('test.txt'));
  bucket.openDownloadStreamByName('test.txt').pipe(fs.createWriteStream('./test2.txt'));
});

它就像一个存储二进制文件的存储桶。您可以使用mongoose-gridfs如果需要一种收藏的感觉,那就在它之上

关于node.js - 上传和存储图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192452/

相关文章:

javascript - $lookup 在 mongodb 中没有给出结果

javascript - Web 在 Cheerio 中抓取 HTML 表格

node.js - Sequelize 是所有这些使用 OR 运算符的正确方法吗?

javascript - Node.js - 将值传递到其他页面

javascript - 如何导入导出模块返回值到其他js文件

java - MongoDB java 驱动程序 3.0 在身份验证时无法捕获异常

mongodb 聚合查询 64 MB 限制

mongodb-go-driver接口(interface)转换 : interface {} is primitive. ObjectID,不是primitive.ObjectID(来自不同包的类型)

javascript - JQuery 没有发布到 Express 后端

javascript - 如何在 Node.js 中获取 async.each 的结果