【发布时间】:2022-01-21 15:22:37
【问题描述】:
编辑我存储的内容有些混乱。我正在 Express.js 和 Mongodb 中制作一个代码 sn-p 网络应用程序。我不是存储代码以便以后执行它,而是存储它,然后在 Web 应用程序上以纯文本形式显示它,并允许用户复制代码以供自己使用。我安装了一个语法高亮模块,让它看起来不错,但代码本身没有执行。
类似于 GitHub Gists。
另一个编辑如何在 Mongodb 中存储多行文本,然后在从服务器获取时,自动将其转换为使用 \n 用于换行符和 \t 用于制表符?
我正在 Express.js 中制作一个 REST API。我在 VS Code 中使用 Rest Client 扩展来测试 API。
我正在向服务器发出 post 请求以创建代码 sn-p。 sn-p 模型的字段都是字符串,但我需要一个字段来保存其中的实际代码。我尝试使用反引号和其他一些东西,但似乎无法弄清楚。
这是我的文件“api.rest”
@hostname = localhost
@port = 5000
@host = {{hostname}}:{{port}}
@contentType = application/json
# POST /users
POST http://{{host}}/snippets HTTP/1.1
Content-Type: {{contentType}}
{
"title": "React Component",
"code": "CHANGE THIS TO A MULTI-LINE JAVASCRIPT CODE SNIPPET",
"creator": "nero1333"
}
【问题讨论】:
-
我不确定这是什么文件格式,但我认为每次需要换行符时输入
\n可能会起作用。但是,我真的希望您的 API 端点不会简单地执行从任何客户端发送的任何随机代码字符串 - 这是一个巨大的安全问题。 -
好吧,我正在 express.js 中制作一个 Web 应用程序来将代码 sn-ps 存储在 MongoDB 中。你会建议我如何存储代码?很高兴你提出这个问题,这样我就可以学习如何解决这个问题。您可以向我发送有关如何在 MongoDB 中存储代码的任何提示或示例,请告诉我
-
我会退后一步。为什么你认为你需要存储代码?这已经离题了,但是虽然简单地存储代码本身不会造成任何伤害,但问题是当您执行该代码时,我认为您最终会想要这样做,否则为什么存储它?并且在您的服务器上执行可能来自任何随机不受信任用户的代码是一个坏主意,原因我希望非常明显(只需回顾过去几周关于 log4j 的所有新闻,这表明当您允许这个)。
-
@PrestonCammarata 取决于您的用例,只要您不尝试执行用户输入的代码就可以了
-
没有。我没有存储代码来执行它。我正在存储将在 Web 应用程序上以纯文本形式显示的代码。它将允许您单击一个按钮来复制代码,以便您可以在其他地方使用它。这是一个简单的代码 sn-p 网络应用程序。只是以明文形式存储代码。
标签: javascript node.js json rest express