Coder Social home page Coder Social logo

Comments (7)

madhums avatar madhums commented on August 22, 2024

that's weird! [email protected] is my email

from node-express-mongoose-demo.

jxnuzhangwen avatar jxnuzhangwen commented on August 22, 2024

Hi Mathias,
I guess you are using the :id param in your "blog" route. please try this.

  app.get('/blogs/:blogId', blogs.show)
  app.get('/blogs/:blogId/edit', auth.requiresLogin, auth.article.hasAuthorization, blogs.edit)
  app.put('/blogs/:blogId', auth.requiresLogin, auth.article.hasAuthorization, blogs.update)
  app.del('/blogs/:blogId', auth.requiresLogin, auth.article.hasAuthorization, blogs.destroy)

  app.param('blogId', blogs.blog)

from node-express-mongoose-demo.

madhums avatar madhums commented on August 22, 2024

@MathiasBehne - @jxnuzhangwen is right. Try changing :id to :blogId, the app params should be different.

from node-express-mongoose-demo.

MathiasBehne avatar MathiasBehne commented on August 22, 2024

Dear guys, thanks for this help. It got me onto the right track and I was able to make some progress. Now I build all the views and tried to complete the whole extension of the "blog" object. Mind you, I also had to change the controller to reference the blogId. On top I replaced the "comment" (for article) by "feedback" (for blog) to further experiment and fully understand this one-to-many relationship. So far most of it works: create, delete. But update and adding tags does not work. There is a "cast to ObjectId" error in the blog model on line 93 (BlogSchema.statics.load function). I cannot find out from the trace, which id is referenced. Perhaps you could explain how to trace this and then I can find out the problem myself. Here is the stack. And I will send the zipped app again.

CastError: Cast to ObjectId failed for value "undefined" at path "_id"
    at ObjectId.cast (C:\015-NodeProjects\Crud\app03\node_modules\mongoose\lib\schema\objectid.js:93:13)
    at ObjectId.castForQuery (C:\015-NodeProjects\Crud\app03\node_modules\mongoose\lib\schema\objectid.js:142:17)
    at Query.cast (C:\015-NodeProjects\Crud\app03\node_modules\mongoose\lib\query.js:410:32)
    at Query.findOne (C:\015-NodeProjects\Crud\app03\node_modules\mongoose\lib\query.js:1705:10)
    at Query.exec (C:\015-NodeProjects\Crud\app03\node_modules\mongoose\lib\query.js:169:16)
    at Function.BlogSchema.statics.load (C:\015-NodeProjects\Crud\app03\app\models\blog.js:93:8)
    at exports.blog (C:\015-NodeProjects\Crud\app03\app\controllers\blogs.js:13:8)
    at paramCallback (C:\015-NodeProjects\Crud\app03\node_modules\express\lib\router\index.js:148:7)
    at param (C:\015-NodeProjects\Crud\app03\node_modules\express\lib\router\index.js:130:11)
    at pass (C:\015-NodeProjects\Crud\app03\node_modules\express\lib\router\index.js:142:5)

from node-express-mongoose-demo.

madhums avatar madhums commented on August 22, 2024

It happens due to the order of the routes. Say if you have two routes

app.get('/articles/new', auth.requiresLogin, articles.new)
app.get('/articles/:id', articles.show)
app.param('id', articles.article)

if you change the order of the above with

app.get('/articles/:id', articles.show)
app.get('/articles/new', auth.requiresLogin, articles.new)
app.param('id', articles.article)

then it treats new as :id param and tries to load the article.article method, where the Item.load() mongoose method is called. Try changing the order of the route, that should fix it.

from node-express-mongoose-demo.

MathiasBehne avatar MathiasBehne commented on August 22, 2024

It seems this is not the issue. Actually, your "article" example works perfectly. I rebuild the "blog" example accordingly. If you look at it in the example I sent over the identical blog update function does not work, also with sequencing the routes as suggested. Error message is still the same. The error must be somewhere else since the exact same example works for "article" but not for "blog". Let me know in case I should resend the second app version.

from node-express-mongoose-demo.

madhums avatar madhums commented on August 22, 2024

sure send it over!

from node-express-mongoose-demo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.