【问题标题】:How to Use .substr() method on Mongoose如何在 Mongoose 上使用 .substr() 方法
【发布时间】:2018-10-22 12:33:35
【问题描述】:

我想像这样在 Mongoose 中使用 substr() :

nim = req.body.nim;
var prodi  = nim.substr(3,5);

但它会返回:

TypeError: nim.substr 不是函数

在我的控制台上,如何修复它?

响应正文为:

{ nama: 'Ambikapathi', email: 'ambi@me.id', nim: 14520244010, password: '14520244010', repassword: '14520244010' }

【问题讨论】:

  • req.body 中有什么内容?该错误表明那里没有nim 这样的属性。
  • req.body.nim 是来自输入的字符串值
  • 能否包含控制台日志req.body的内容。
  • { 名称:'Ambikapathi',电子邮件:'ambi@me.id',nim:14520244010,密码:'14520244010',重设密码:'14520244010'}
  • nim 是一个数值。您在评论中删除的数据中清楚地显示了这一点。 nim.toString().substr(3,5) 按预期工作。

标签: node.js mongoose mean


【解决方案1】:

看起来 nim 是一个数字而不是一个字符串。尝试这个 nim.toString().substr(3,5);

【讨论】:

    【解决方案2】:

    我认为您正在尝试使用string prototype substr,而不是mongo's one。它失败 b/c 你的数据包含 integer 而不是 string 那里:

    { nama: 'Ambikapathi', email: 'ambi@me.id', nim: 14520244010, password: '14520244010', repassword: '14520244010' }
    

    类似这样的:

    nim = req.body.nim.toString();
    

    应该可以解决您的问题。

    更新(@ŞükSefHam):或者可能是nim 在其他地方使用默认非字符串值定义的问题

    【讨论】:

    • 所有的 req.body=string ;所以我们不需要 req.body.xx.toString()。你以数字方式发送数据。总是 typeof req.body==="string"。你可以试试.
    • @ŞükSefHam,是的,但从 cmets 很明显,nim 是整数 14520244010,idk,可能是一些额外的中间件或其他东西......
    • 可能是。还有一个:可能是var nim已经定义了;我遇到了类似这样的错误。
    • @ŞükSefHam,是的,可能是。既然你已经熟悉这个案例,为什么不尝试回答,或者评论澄清一下?
    • 你可以通过从我的评论中减去来回答这个问题。
    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多