【问题标题】:Having trouble with Mongod testing a routeMongod 测试路线时遇到问题
【发布时间】:2016-12-31 01:54:31
【问题描述】:

我一直在关注 thinkster 的在线教程“构建你的第一个平均堆栈应用程序”

https://thinkster.io/mean-stack-tutorial#beginning-node

我正在尝试通过使用来测试我的路线是否正确

    curl -X PUT http://localhost:8080/posts/<POST ID>/upvote

mongod 抛出一个 505 错误说

    <h1>Cast to ObjectId failed for value &#34;57bcdb57bcdb255600e6d114e7afb9&#34; at path &#34;_id&#34;</h1>

CastError: 路径“_id”处的值“57bcdb57bcdb255600e6d114e7afb9”转换为 ObjectId 失败
    在 MongooseError.CastError (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/error/cast.js:19:11)
    在 ObjectId.cast (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/schema/objectid.js:147:13)
    在 ObjectId.castForQuery (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/schema/objectid.js:187:15)
    在演员表(/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/cast.js:208:32)
    在 Query.cast (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/query.js:2653:10)
    在 Query.findOne (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/query.js:1284:10)
    在/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/query.js:2230:21
    在新的 Promise.ES6 (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/promise.js:45:3)
    在 Query.exec (/home/ubuntu/workspace/flapper-news/node_modules/mongoose/lib/query.js:2223:10)
    在/home/ubuntu/workspace/flapper-news/routes/index.js:37:9
    在 paramCallback (/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:404:7)
    在参数(/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:384:5)
    在 Function.process_params (/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:410:3)
    在下一个(/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:271:10)
    在 Function.handle (/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:176:3)
    在路由器(/home/ubuntu/workspace/flapper-news/node_modules/express/lib/router/index.js:46:12)

我通过输入检查了id和object是否存在

    curl http://localhost:8080/<POST ID>/posts 

它验证了一个物体确实在那里

这里是我的 cloud9 工作区,如果你想仔细看看cloud9Workspace

我不知道出了什么问题,这可能与我的 mongodb 版本有关吗? (它比教程中的晚)

提前感谢您的宝贵时间,希望您能提供帮助!

【问题讨论】:

标签: node.js mongodb


【解决方案1】:

看起来您作为 ObjectID 传递的字符串格式不正确(它太长)。 Mongo ObjectID 是 24 个字符(12 字节)的字符串。您的特定 ID 包含 30 个字符

【讨论】:

  • 我的 objectID 是 24 个字符 .... alexaxel98:~/workspace/flapper-news $ curl <a href="/default/index/tourl?u=aHR0cDovL2xvY2FsaG9zdDo4MDgwL3Bvc3Rz" rel="nofollow" target="_blank">localhost:8080/posts</a> [{"_id":"57b8a432d4b2485263e88966","title":"test ","link":"<a href="/default/index/tourl?u=aHR0cDovL3Rlc3QuY29tJTIyLCUyMl9fdiUyMjowLCUyMmNvbW1lbnRzJTIyOiU1QiU1RA%3D%3D" rel="nofollow" target="_blank">test.com","__v":0,"comments":[]</a>}
  • 但是,如果您注意到,那不是错误消息中所提及的内容。猫鼬正在获得“57bcdb57bcdb255600e6d114e7afb9”
猜你喜欢
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 2019-11-12
相关资源
最近更新 更多