当前位置: 首页 > 知识库问答 >
问题:

MongooseJS奇数转换错误,路由名称错误

龙凯
2023-03-14

我在后端工作,我有一个路由,它应该只从数据库返回一个ID数组,以便以后延迟加载。我的路线定义如下:

 router.get('/list', (req, res) => {
   Insider.find({}, {_id}).then(insiders => {
     if (!insiders) {
       res.status(400).json({ error: 'unable to find list of insiders' });
     }
     res.json(insiders);
   }).catch(err => res.status(400).json(err));
 });

它应该返回这样的数组[\u id,\u id,\u id….]

但我得到了一个非常奇怪的错误:

对于模型“内部人”CastError,路径“\u id”处的值“list”转换为ObjectId失败:对于新CastError处的模型“内部人”路径“\u id”处的值“list”转换为ObjectId失败(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\mongoose\lib\error\Cast.js:27:11)。在objectid上强制转换(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\U modules\mongoose\lib\schema\objectid.js:158:13)。模式类型。ObjectId上的ApplySetter(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\U modules\mongoose\lib\schematype.js:724:12)。模式类型_ObjectId上的castForQuery(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\U modules\mongoose\lib\schematype.js:1113:15)。模式类型。ObjectId上的castForQuery(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\U modules\mongoose\lib\schematype.js:1103:15)。模式类型。CastforQueryRapper(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\mongoose\lib\schematype.js:1082:15)位于模型的cast(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\mongoose\lib\cast.js:300:32)。查询查询在模型上强制转换(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\mongoose\lib\query.js:3309:12)。查询询问_模型中的castConditions(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\U modules\mongoose\lib\query.js:1293:10)。查询询问_进程中的findOne(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\mongoose\lib\query.js:1518:8)。nextTick(C:\Users\rutherfordc\Documents\GitHub\ccs express mongo\node\u modules\kareem\index.js:333:33)位于进程中的组合tickCallback(internal/process/next_tick.js:131:7)_tickCallback(内部/process/next_tick.js:180:9)

我已经确认,实际上是路由名称泄漏到我的路由处理程序中。(即,我将S的路线更改为/jerry


共有2个答案

阎善
2023-03-14

原来这是一个路线优先问题。在/list路由之前有一个/:insiderId路由。

道歉。

屈健柏
2023-03-14

我认为问题在于你的发现方法试着把它变成这样

 router.get('/list', (req, res) => {
 Insider.find({}, {id:0}).then(insiders => {
  if (!insiders) {
   res.status(400).json({ error: 'unable to find list of insiders' });
   }
     res.json(insiders);
  }).catch(err => res.status(400).json(err));
});

我认为应该使用id而不是_id,并将其值设置为0

 类似资料:
  • 我得到一个错误,当我试图运行这个简单的脚本: 假设我输入“dude”,我得到的错误是: 我正在运行MacOSX10.9.1,我正在使用安装了Python3.3的PythonLauncher应用程序来运行脚本。

  • 我试图用XSLT处理器在PHP中转换xml文档,但我无法选择任何内容。。。我认为这是一个名称空间问题。如果我从一个干净的<代码> inputxml: Xsl-file: 我无法更改输入文件,因为它是由其他程序生成的。 安德烈

  • 问题内容: 我在调用ajax时遇到了laravel的路由问题,但是我真的不明白是什么原因导致的,因为我应该调用ajax并成功返回。任何帮助将不胜感激。谢谢! 这是我的ajax代码 这是我的路线 这是我的控制器方法 这是我得到的错误 Laravel日志 filters.php 问题答案: 您需要在AJAX调用的标头中包含CSRF令牌。试试这个: 在您的HTML 块中: 对于您的AJAX电话: 最后,

  • 我只是在复制ProductHunt。com网站和地址的网址,我得到了错误的名称错误!当我输入'localhost:8000/accounts/signup'时,它会将我带到一个html页面,这是我为测试所做的!主URL。py看起来像: 因此,它会转到帐户文件夹urls.py看起来像:从django.urls导入路径,包括从。导入视图 然后是视图。py看起来像:来自django。快捷方式导入渲染 至

  • 问题内容: 我正在尝试在带有Visual Studio 2012的Windows 8.1上使用angularJS创建HTML5 / JS / CSS3应用程序。我目前无法将参数发送到其他视图。 谷歌搜索时,我看到几个示例,当我在Windows 8应用程序中执行此操作并单击链接时,出现以下错误。 未安装任何应用程序以打开此类链接(不安全) 当我将代码放在A标签之间时,它会显示其ID。 app.js

  • 我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。 文件夹结构: Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。 .api目录中的htaccess文件: 存储目录和其中的所有内容对任何人都是可写、