前端执行 input / textarea 输入的 js 代码

说明

前端可能会碰到这样的需求:在输入/输出数据结构不确定的情况下,需要在前端使用特定的脚本去做一些整理工作。

整体需求可拆分为两部分:

  • 系统中提供某些数据,供用户使用
  • 用户根据系统中提供的数据来编写脚本

这就需要我们在开发的时候除了能执行脚本,还需要让写脚本的人用到系统提供的参数。

最终效果

借助 js-execute 插件来实现,此插件主要用于执行用户输入的脚本。

代码在一个沙箱内执行,此插件只返回代码的执行结果

使用效果如下:
在这里插入图片描述

代码示例

完整代码可见: 点击跳转
npm: npm

引入/并创建实例

import JSRunner from 'js-execute';

// 创建实例
const runner = new JSRunner(({code, data}) => {
  console.log('runner result = ', data)
});

执行 用户 输入的代码

// 执行代码
let userInputCode = `
	function getName() {
		return this.name
	}
	return getName();	// 'hello world'
`
let props = { name: 'hello world' } // 自定义传入的参数
// 执行代码
runner.execute(userInputCode, props) 

关于代码执行错误的捕获

插件内只能捕获代码执行过程中产生的异常,可以根据code来判断 0: 正常 1: 异常
而类似于 输入的代码结构异常 这类问题,无法在插件内部捕获,只能通过外部来验证格式是否正确,例如使用 monaco-editor 的语法校验

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将输入框中的数据写入数据库,你需要使用后端编程语言(例如PHP、Python、Node.js等)来处理表单数据并将其存储到数据库中。以下是一些大致步骤: 1. 在表单的`<form>`标签中添加`action`属性和`method`属性,`action`属性指向后端处理表单数据的代码的URL,`method`属性为`post`。 2. 在后端处理表单数据的代码中,使用相应的数据库操作语句将表单数据存储到数据库中,例如使用SQL语句进行插入操作。 3. 在后端处理表单数据的代码中,获取表单数据的方式取决于使用的后端编程语言和框架。可以使用`$_POST`(PHP)、`request.body`(Node.js)等方式获取表单数据。 4. 在前端页面中,要确保输入的数据符合后端处理表单数据的要求,例如输入框的`name`属性要与后端代码中获取表单数据的方式相对应。 以下是一个大致的示例代码: HTML代码: ```html <form action="saveData.php" method="post"> <label for="title">标题:</label> <input type="text" id="title" name="title"> <br> <label for="content">内容:</label> <textarea id="content" name="content"></textarea> <br> <input type="submit" value="提交"> </form> ``` PHP代码: ```php <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 获取表单数据 $title = $_POST['title']; $content = $_POST['content']; // 插入数据到数据库 $sql = "INSERT INTO myTable (title, content) VALUES ('$title', '$content')"; if ($conn->query($sql) === TRUE) { echo "数据已成功写入数据库"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?> ``` 在这个示例中,当用户在前端页面中填写表单数据并提交表单时,表单数据会被发送到后端的`saveData.php`代码中进行处理。在`saveData.php`中,使用`$_POST`获取表单数据,并将其插入到名为`myTable`的数据库表中。如果插入操作成功,会向用户返回一条成功信息,否则会返回一个错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值