justjs
justjs copied to clipboard
Cannot call method 'unshift' of undefined
The page() function in app.js makes the data.slots.crumbs get lost (which is used in layout.ejs). The page() function should read as follows:
function page(req, res, template, data)
{
_.defaults(data, { slots: {} });
_.defaults(data.slots, {crumbs: [], user: req.user, session: req.session });
res.send(view.page(template, data));
}
instead of
function page(req, res, template, data)
{
_.defaults(data, { slots: {} });
_.defaults(data.slots, {user: req.user, session: req.session });
res.send(view.page(template, data));
}
Hmm, which installment (subdirectory of examples/) are you looking at here? Or are you talking about the production version?
Blog 5 (but I see the same code is still in blog 6).
For the record: I'm just following the blogposts, so perhaps I missed something else.
Here's the stacktrace for more information:
undefined:24
throw err;
^
TypeError: ejs:2
1| <!DOCTYPE html>
>> 2| <% slots.crumbs.unshift({'title': 'Home', 'href': '/'}) %>
3| <html lang="en">
4| <head>
5| <meta name="viewport" content="width=device-width, initial-scale=1.0" />
Cannot call method 'unshift' of undefined
at Object.<anonymous> (eval at <anonymous> (C:\Users\shadowmedia\node_modules\ejs\lib\ejs.js:209:12))
at Object.layout (C:\Users\shadowmedia\node_modules\ejs\lib\ejs.js:211:15)
at Object.partial (C:\Users\shadowmedia\Documents\node\blog6\view.js:78:30)
at Object.page (C:\Users\shadowmedia\Documents\node\blog6\view.js:36:17)
at page (C:\Users\shadowmedia\Documents\node\blog6\app.js:150:21)
at C:\Users\shadowmedia\Documents\node\blog6\app.js:33:9
at C:\Users\shadowmedia\Documents\node\blog6\db.js:50:9
at C:\Users\shadowmedia\node_modules\mongodb\lib\mongodb\cursor.js:133:9
at C:\Users\shadowmedia\node_modules\mongodb\lib\mongodb\cursor.js:173:11
at C:\Users\shadowmedia\node_modules\mongodb\lib\mongodb\cursor.js:467:35