有没有好的方法来验证file字段,只允许以".gci"结尾的字符串?我不确定是否可以直接在模式中这样做,或者是否应该在其他地方处理它.

schema.js:

 const schema = new mongoose.Schema({
      file: {
        type: String,
        required: [true, "Please provide a .gci file"],
      },
    });

推荐答案

你可以像这样使用custom validator:

const schema = new mongoose.Schema({
  file: {
    type: String,
    required: [true, "Please provide a .gci file"],
    validate: {
       validator: function(v) {
           if (!value.endsWith(".gci")) {
               return false;
           }
       },
       message: props => `${props.value} doesn't end with .gci extension!`
    }
});

Node.js相关问答推荐

node 上的磁盘压力

Node js 处理回调和 Promise

使用 playwright 获取页面中同一 url 的所有响应

在生产环境中,Nest实例启动时抛出不完整的导入错误

当try 将 formData 转换为 express js 时,服务器无法识别 multipart/form-data

将文件传递到 AWS lambdas(nodejs) + API 网关后重新上传文件

Angular Build 生产返回致命的 javascript 无效大小错误

ResponseError:键空间ks1不存在

为什么 req.params.id 返回 undefined未定义?

适用于 Windows 7 的 NodeJS

Node_redis - 如何删除密钥?

所有的javascript回调都是异步的吗?如果不是,我怎么知道哪些是?

在 Mongoose 中创建外键关系

在 express 中添加故意延迟

如何在 node 中找到引用站点 URL?

Node.js `--nolazy` 标志是什么意思?

Node.js 中的 Streams3 是什么,它与 Streams2 有何不同?

node.js 服务器和 HTTP/2 (2.0) 与 express.js

webpack-dev-server 找不到模块webpack

NodeJS:如何调试检测到 EventEmitter 内存泄漏.添加了 11 个侦听器