鍍金池/ 問答/Java  數(shù)據(jù)庫  HTML/ 數(shù)組應(yīng)當(dāng)如何存取在mysql?最好是node解決辦法

數(shù)組應(yīng)當(dāng)如何存取在mysql?最好是node解決辦法

我用了express去開發(fā)一些功能。然后到了數(shù)據(jù)存取這一步
前端頁面發(fā)送過來的數(shù)據(jù)這樣處理

var theData = {
    menu_id : theId,
    menu_type: theBoxer.find("select").val(),
    menu_name: theBoxer.find(".footName input").val(),
    menu_info: theBoxer.find(".footDescript textarea").val(),
    menu_pic : theBoxer.find(".theSelectImg").attr("src"),
    menu_price: theBoxer.find(".theNumberOfFoot input").val(),
    menu_stand : JSON.stringify(menu_stand),
    menu_property :JSON.stringify(menu_property)
};

然后路由這邊這樣處理:

//更改信息
router.post("/updateMenu",function(req,res){
    var connectDB = require('../models/getConnectDB');
    var theConnect =  connectDB.getConnect('admin');
    var orderInfo = req.body;
    var setString = '';
    setString += 'menu_type='+orderInfo.menu_type+', ';
    setString += 'menu_name=\''+orderInfo.menu_name+'\', ';
    setString += 'menu_info=\''+orderInfo.menu_info+'\', ';
    setString += 'menu_pic=\''+orderInfo.menu_pic+'\', ';
    setString += 'menu_price=\''+orderInfo.menu_price+'\', ';
    setString += 'menu_stand=\''+orderInfo.menu_stand+'\', ';
    setString += 'menu_property=\''+orderInfo.menu_property+'\'';
    var updateSql = 'UPDATE menu set '+setString+' WHERE menu_id = '+ orderInfo.menu_id +'';
    console.log(updateSql);
    theConnect.query(updateSql,function(err,results){
        if(err){
            console.log('errinfo='+err.message);
            res.send({success:false,msg:"operate fail"})
        }
        theConnect.end();
        res.send({success:true,msg:"operate success"});
    });   
})

存的時(shí)候是成功了,但是拿出來的時(shí)候,格式不正確。。不能正確解析json

"[{'standName':'但是防守對(duì)方','stand_price':'的方式發(fā)送','stand_less':'10000'}]"
回答
編輯回答
涼汐

咳咳,老朋友來了。

1.首先是存儲(chǔ)的問題,存儲(chǔ)數(shù)組可以使用字符串的一個(gè)字段來存,將數(shù)組 JSON.stringify()序列化之后存成字符串。
2.建議使用Sequelize這個(gè)orm庫,一是封裝很多很方便的sql操作,也可以用原生sql,二是避免sql注入。
3.express響應(yīng)json直接用res.json(obj)。
4.上述代碼的query的if err那里建議加上return,因?yàn)闆]有用else,會(huì)導(dǎo)致響應(yīng)兩遍而報(bào)錯(cuò) Can't set headers after they are sent

emmmm

2018年9月9日 17:16