gpt4 book ai didi

javascript - 用 Mongoose 保存图像

转载 作者:行者123 更新时间:2023-12-01 14:51:06 24 4
gpt4 key购买 nike

我知道已经有很多关于这个主题的主题,但不幸的是我直到现在才找到答案。我将 angular.js 与 http://angular-js.in/image-upload/ 中的示例代码一起使用从客户端获取图像。这部分有效

现在到 node/mongodb 部分,这是我的后端模型:

var userSchema = new mongoose.Schema({
avatar: { data: Buffer, contentType: String },
// ...
});

module.exports = mongoose.model('User', userSchema);

和我的 Node 代码:
exports.createAvatar = function (req, res) {
var avatar = {
data: req.body.data.image, // see below
contentType: 'image/png'
}

models.DUser
.findById(index.findUserId(req))
.exec(function (err, user) {
user.avatar = avatar;
// ...
user.save(function (err, user) {/* ... */ });

和我的 angularCtrl:
var foo = {
image: image,
imageName: image.name,
};

$http.post('/api/users', {data: foo })
.success(function (result) { /*...*/ });

除了 req.body.data.image 我尝试了许多不同的变体,如 req.body.data.image.dataURL、req.body.data.image.dataURL.data,但到目前为止没有任何效果。我的 req.body.data.image 记录显示:
{ file: 
{ webkitRelativePath: '',
lastModified: 1411073963000,
lastModifiedDate: '2014-09-18T20:59:23.000Z',
name: '3770316278.png',
type: 'image/png',
size: 32493 },
url: 'blob:http%3A//127.0.0.1%3A3000/cb20debc-8a3a-468f-ab5c-39299f7ec52b',
dataURL: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACHCAYAAAC.....

如何将图像保存到数据库中?

编辑

我试图在 base64, 之后保存所有内容来自 req.body.data.image.dataURL像这样进入头像:
var split = req.body.data.image.dataURL.split('base64,');
var type = split[0];
var data = split[1];

var avatar = {
data: type,
contentType:'image/png'
};

保存消息仍然是:
user.avatar = avatar
user.save(function (err, user) {}

但我仍然得到错误

TypeError: Cannot set property 'avatar' of null



由于我的问题发生了一些变化,我将这个问题标记为已解决,新问题在这里: Displaying Images in Angular.js from MongoDB

最佳答案

你知道,这绝对不是在 mongo 上保存图像数据的最佳方式。相反,您可以将图像保存在服务器上的任何目录中,并仅保存文件的 url,例如..
Mongoose 模型.js

avatar : {
type : String
}
在你的主脚本上你应该得到
let avatar_url = '/path/to/uploads/' + req.body.data.image.file.name
像这样的东西

关于javascript - 用 Mongoose 保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com