0
我有一个关于缓冲区类型的问题。我是NodeJ中的新成员,我需要帮助才能了解缓冲区类型如何工作。让我们来举例:NodeJS类型缓冲区不一致性
我在架构“用户”有场“图片”。
var UserSchema = new mongoose.Schema({
name: String,
picture: { type: Buffer, contentType: String}
});
此外,我有一个端点来获取信息。这很简单:
User.findById(req.params.id, function (err, u) {
res.send(u);
});
在这一点上没有问题。 但是我在这个回应中面临着不一致。
案例01(res.send(U)): 当我有我所有的文件在我的响应缓冲器字段是类似的东西:
{
"name": "aaa",
"picture": {
"type": "Buffer",
"data": [100,97,116,97,58,105,...]
}
}
案例02(res.send( u.picture)): 当我只有图片领域,我的回答是这样的事情:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAADAFBMVEUODAkjCgYbGBQTJwZFEBIuHBZjDw8ZLkUyKCNFJRonOA1cIglNLBYgN1QiQCSDExlWJi+pAw4+NDJrICxkKg8zRBNKOCFbMSo1RDrEAxRvLxFVOiNnMh6ZGCEpRWo8TB5fPRF1MhOELQpMQEBBUA1BQVxfOjJ6KUpZQighV088TEF6NhdYQT1qPCvDFCFFVSO1GyhLTzeKK06COhkrWGdEU0hZSkYhY1pBT3NuShdiSEGaLjh8QCxBWz0XaWYRX61wSDAwbRxNXCzrDCpVVzZBYy6LQR62KDFqR1ufOxBTV0hiT0tySj9LXFFbVFc3XYyZNV1IWYBXZxKFSjZpVk3FLDiWSSR7VjFmWlZUajdhYU...
我的问题是:为什么发生以及如何使有回应如下?
{
"name": "aaa",
"picture: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAADAFBMVEUODAkjCgYbGBQTJwZFEBIuHBZjDw8ZLkUyKCNFJRonOA1cIglNLBYgN1QiQCSDExlWJi+pAw4+NDJrICxkKg8zRBNKOCFbMSo1RDrEAxRvLxFVOiNnMh6ZGCEpRWo8TB5fPRF1MhOELQpMQEBBUA1BQVxfOjJ6KUpZQighV088TEF6NhdYQT1qPCvDFCFFVSO1GyhLTzeKK06COhkrWGdEU0hZSkYhY1pBT3NuShdiSEGaLjh8QCxBWz0XaWYRX61wSDAwbRxNXCzrDCpVVzZBYy6LQR62KDFqR1ufOxBTV0hiT0tySj9LXFFbVFc3XYyZNV1IWYBXZxKFSjZpVk3FLDiWSSR7VjFmWlZUajdhYU..."
}
详细信息:我用快速使用猫鼬。
感谢@AlexandruOlaru为干净的答案。但是我怎么能同时拥有两个? 我想的名字和picture.toString()在相同的反应 –
@brunnogrillo更新我的回答 –
遗憾的是它不工作。我甚至试过这样:u.picture =新的缓冲区(u.picture“的base64”)的toString(“二进制”)没有成功 –