收藏
回答

如何解决eval不能使用的问题,能够有什么替换方法吗?

exports.main = async (event, context) => {
  try {
    if(typeof event.data == 'string'){
      event.data = eval('('+event.data+')');
    }
    return await db.collection(event.collection).doc(event.doc)
      .update({
        data: {
          ...event.data
        }
      })
  } catch (e) {
    console.error(e)
  }
}


我用传进来的字符串换成js代码,但是这个eval方法已经不能用了

回答关注问题邀请回答
收藏

3 个回答

  • nobo
    nobo
    03-30

    有现成的js解释器 eval5: https://github.com/bplok20010/eval5

    import { evaluate } from 'eval5';
    var data = evaluate(`( ${event.data} )`)
    
    03-30
    有用
    回复
  • LeeJim🌀
    LeeJim🌀
    02-19

    自己用JS写一个JS解析器

    02-19
    有用
    回复
  • Eto
    Eto
    02-19

    如果是JSON数据就用 JSON.parse 方法,如有包含函数肯定是不能执行了

    02-19
    有用
    回复
登录 后发表内容
问题标签