数组应当如何存取在mysql?最好是node解决办法

发布于 2022-09-06 21:31:12 字数 1722 浏览 8 评论 0

我用了express去开发一些功能。然后到了数据存取这一步
前端页面发送过来的数据这样处理

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"});
    });   
})

存的时候是成功了,但是拿出来的时候,格式不正确。。不能正确解析json

"[{'standName':'但是防守对方','stand_price':'的方式发送','stand_less':'10000'}]"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰葑 2022-09-13 21:31:12

咳咳,老朋友来了。

1.首先是存储的问题,存储数组可以使用字符串的一个字段来存,将数组 JSON.stringify()序列化之后存成字符串。
2.建议使用Sequelize这个orm库,一是封装很多很方便的sql操作,也可以用原生sql,二是避免sql注入。
3.express响应json直接用res.json(obj)。
4.上述代码的query的if err那里建议加上return,因为没有用else,会导致响应两遍而报错 Can't set headers after they are sent

emmmm

尘世孤行 2022-09-13 21:31:12

上面的大佬、我用的egg 我取出来后。json.parse 解析不出来数组。求教

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文