【发布时间】:2018-02-02 09:30:51
【问题描述】:
我有一个关于缓冲区类型的问题。我是 NodeJs 的新手,我需要帮助来了解 Buffer Type 的工作原理。举个例子:
我的架构“用户”中有一个字段“图片”。
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..."
}
详情:我正在使用 mongoose 和 express。
【问题讨论】:
标签: node.js image express mongoose buffer