小编rem*_*ion的帖子

使用Node.js将Base64图像转换为原始二进制文件

我发现的帖子与我正在寻找的内容很接近,但我无法成功实现我想要的内容.这是一般流程:

  1. 使用其余的场地数据提交照片,作为base64数据
  2. 剥离数据前缀(如果存在),所以我只有图像base64数据

var base64data = venue.image.replace(/^data:image\/png;base64,|^data:image\/jpeg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, '');
Run Code Online (Sandbox Code Playgroud)
  1. 通过MongoDB将Base64数据存储在GridFS中(我正在使用gridfstore)
  2. 然后,我想通过URL将请求的图像作为原始图像文件检索.

// generic images route
server.get(version+'/images/:id', function(req, res) {
  gridfstore.read( req.params.id, function(error,data) {
    res.writeHead(200, {
      'Content-Type': 'image/jpeg',
      'Content-Length': data.buffer.length
    });

    res.end(data.buffer);
  });
});
Run Code Online (Sandbox Code Playgroud)

基本上,此方法返回存储在GridFS中的Base64字节.我尝试了其他方法,但他们没有返回原始图像.

我想使用以下网址提取图片:

http://[localhost]/1/images/11dbcef0-257b-11e3-97d7-cbbea10abbcb
Run Code Online (Sandbox Code Playgroud)

以下是浏览器跟踪的屏幕截图: 浏览器跟踪

javascript base64 image node.js gridfs

9
推荐指数
1
解决办法
2万
查看次数

$或使用Mongoose搜索

我试图找出用户是否输入了重复的名称和/或电子邮件地址.我是Mongoose的新手(也就MongoDb而言),但根据我所读的内容,这似乎是正确的.然而,它返回真实 - 无论如何.如果我单独找到一个,而不是$或者,它似乎工作正常.

// check if user exists
var userExists = function(u, callback) {
  User.find({$or:[ {'username': u.username}, {'email': u.email}]} , function(err,user) {
    if (err) {      // err, so not sure if user exists
        callback(1);
        return;
        } 
    if (user) { // user, so return exists
        callback(1);
        return;
        } 
    //no error, no user
    callback(0);
    });
};
Run Code Online (Sandbox Code Playgroud)

想法?

mongoose mongodb node.js

4
推荐指数
1
解决办法
9424
查看次数

标签 统计

node.js ×2

base64 ×1

gridfs ×1

image ×1

javascript ×1

mongodb ×1

mongoose ×1