将json插入节点js中的mysql表

时间:2017-05-06 08:52:44

标签: javascript mysql json node.js express

我有以下字段的用户

id,name(varchar),gallery(json)

gallery包含用户上传行的图片路径,用户可以将更多图片存储到他的图库中,每张图片的图片路径都存储在gallery中作为json

这是一个示例行

id name gallery

1  blob ["test.jpg","test1.jpeg"]

这是我的代码

function(req,res){
//image path after upload
var imagePath =uploadS3();

//SELECT gallery FROM user   and store to oldGallery
 var oldGallery = getCurrentGallery()
 var updatedGallery;
if(oldGallery==null){
    updatedGallery = "[\""+imagePath+"\"]"

}else{
    //concatinate the gallery row with new imagepath
      updatedGallery = JSON.parse(oldGallery).push(imagePath);
 }

   db.query("UPDATE users SET gallery=? ",[updatedGallery],function(error,result){
});
}

JSON.parse(oldGallery).push(imagePath);的问题并没有奏效 console.log(JSON.parse(oldGallery).push(imagePath))输出2而不是数组。

1 个答案:

答案 0 :(得分:1)

Array.prototype.push()在推送​​后返回数组的长度(不是数组本身)。您可以将它连接到新数组:

updatedGallery = JSON.parse(oldGallery).concat([imagePath]);

此外,updatedGallery子句中的if类型为Stringelse子句中的类型为Array。你应该使它一致并使用字符串或数组。