node.js - 如何使用 mongoose 将 URL 保存到 mongoDB
问题描述
我的 express 应用程序上有一个表格供用户填写,它通过 mongoose 插入到 mongoDB 中。其中一个输入用于 URL。当我将新模型保存到 mongoDB 时,看起来像这样https://www.youtube.com/的 URL现在看起来像这样 https: x2F; x2F; www.youtube.com& #x2F;.(没有空格)
我遇到过这个问题:如何在 Mongoose Schema 中存储 URL 值?但我不想验证,我只想能够将 URL 保存为纯文本
let ProductSchema = new Schema({
business: {type: String, required: true},
productName: {type: String, required: true},
category: {type: String, required: true},
price: {type: Number, required: true },
description: {type: String, required: true},
websiteURL: {type: String, required: true},
// websiteURL: {type: Url, required: true}, why isn't this possible?
});
解决方案
数据库无法存储“/”,因为它将该字符用于其他事物,因此它转向 Unicode。
'/' 的 unicode 十六进制字符是:
/
我不确定您如何将其存储为纯文本,但是当从数据库请求返回时,它应该转换回来,如果不是,则必须有某种 NPM 包可以为您转换它。
此外,浏览器应该能够将 Unicode URL 解释为普通 URL。
推荐阅读
- mysql - MySQL - 每年从 UNION 计算 SUM(field)
- amazon-web-services - AWS Cognito 中的 Microsoft oidc 允许多个租户
- powershell - 另存为 .txt 文件 CMD/powershell 输出
- php - 后端中的 TYPO3 TCA 字段顺序
- javascript - 如何用另一个数组值替换javascript中的数组值?
- azure - Azure 托管应用程序 - 带有应用程序链接的 ViewDefinition.json 操作
- javascript - 单击按钮时如何将所有其他布尔值切换为false
- mysql - 检查值是否存在于另一个(连接的)表中并相应地在结果中填写列
- linux - for 循环在 bash 中创建的整数比预期的要多
- jenkins - gitlab gui 不显示从阶段测试返回的 jenkinsfile 报告