Comments (7)
that's weird! [email protected] is my email
from node-express-mongoose-demo.
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.
@MathiasBehne - @jxnuzhangwen is right. Try changing :id
to :blogId
, the app params should be different.
from node-express-mongoose-demo.
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.
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.
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.
sure send it over!
from node-express-mongoose-demo.
Related Issues (20)
- An in-range update of babel-eslint is breaking the build 🚨 HOT 3
- Cannot read property 'on' of undefined HOT 2
- An in-range update of multer is breaking the build 🚨 HOT 1
- [nodemon] app crashed - waiting for file changes before starting... HOT 2
- An in-range update of compression is breaking the build 🚨 HOT 1
- An in-range update of supertest is breaking the build 🚨 HOT 5
- An in-range update of morgan is breaking the build 🚨 HOT 1
- User validation failed: email: fn is not a function HOT 2
- An in-range update of cors is breaking the build 🚨 HOT 1
- An in-range update of connect-mongo is breaking the build 🚨 HOT 2
- TypeError: Cannot read property 'on' of undefined in server.js file HOT 2
- An in-range update of cookie-parser is breaking the build 🚨 HOT 1
- Remove $ from bash codeblocks
- Catch block only checks 422 validation error HOT 1
- (node:54610) UnhandledPromiseRejectionWarning: MongoError: not authorized HOT 2
- docker security flaw
- Error running the project on local HOT 2
- req.user problem HOT 3
- Responsible disclosure policy HOT 2
- how to remove cannot get error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-express-mongoose-demo.