我需要为mongodb创建虚拟数据,部分数据是需要首先转换为base64的图片,然后我需要显示它们。
这是我的控制器
var buffer = require('buffer');
var path = require('path');
var fs = require('fs');
var users_model;
var PageUsersController = function () {
users_model = require('../models/users_model');
}
module.exports = PageUsersController;
var pic_binary;
function encode_base64(filename){
fs.readFile(path.join(__dirname,'../foo/',filename),function(error,data){
if(error){
throw error;
}else{
var buf = Buffer.from(data);
var base64 = buf.toString('base64');
pic_binary = base64;
console.log(pic_binary); // returns result.
return base64;
}
});
}
encode_base64('user_pic.jpg');
PageUsersController.getUserDetails = function (cb) {
var flat_details = [
{
user_name: "john",
user_pic:pic_binary, // always return undefined
}
];
return cb(null, flat_details);
}
如何通过mongodb架构传递包含编码结果的变量'pic_binary'?
我试图将函数的值设置为变量然后传递它......但是无论我如何将结果设置为变量
,我都会得到未定义的答案 0 :(得分:0)
知道了。 应该使用Synchronized:
var buff = fs.readFileSync(path.join(__dirname,'../user_pic/','profile_pic.png'));
var base64data = buff.toString('base64');
var flat_details = [
{
user_pic:base64data , // problem solved.
}
];