You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express开发中调用find方法报错提示不是函数是什么原因?

错误原因分析

该find不是函数报错由students变量的初始化语法错误直接导致,具体问题如下:

  • 定义students时错误使用了小括号()包裹对象列表,而非数组所需的方括号[]
    原错误写法:
    let students = ({id: 1, name: 'Alice'}, {id:2, name: 'Bob'}, {id: 3, name: 'Charlie' });
    
  • 小括号包裹的内容属于JavaScript的逗号表达式,最终只会返回括号内最后一个值,也就是{id: 3, name: 'Charlie'}这个单独的对象,并非你预期的学生数组
  • find()是Array原型上的内置方法,普通对象没有该方法,调用时自然会抛出find is not a function的报错
修复方案

只需要把定义students的小括号替换为方括号即可:

let students = [{id: 1, name: 'Alice'}, {id:2, name: 'Bob'}, {id: 3, name: 'Charlie' }];

修改后students为正常的数组结构,可正常调用find方法查询指定ID的学生信息。

内容的提问来源于stack exchange,提问作者Nikoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:06:03