balderdashy / sails

Realtime MVC Framework for Node.js
https://sailsjs.com
MIT License
22.83k stars 1.95k forks source link

Can't load hogan as a template engine #870

Closed Kingdutch closed 11 years ago

Kingdutch commented 11 years ago

config/views.js described "all view engines which implement consolidate.js", however when changing "engine: " to "hogan" which is listed in the examples I first get an error that "hogan" is not installed so I install hogan.js (hogan doesn't actually exist) and change the "engine: " value to match. This however throws the following error:

./.nvm/v0.10.17/lib/node_modules/sails/node_modules/express/lib/application.js:174 if ('function' != typeof fn) throw new Error('callback function required'); ^ Error: callback function required at Function.app.engine (./.nvm/v0.10.17/lib/node_modules/sails/node_modules/express/lib/application.js:174:38) at Array.loadExpress as 1 at listener (./.nvm/v0.10.17/lib/node_modules/sails/node_modules/async/lib/async.js:462:46) at ./.nvm/v0.10.17/lib/node_modules/sails/node_modules/async/lib/async.js:416:17 at Array.forEach (native) at _each (./.nvm/v0.10.17/lib/node_modules/sails/node_modules/async/lib/async.js:32:24) at Object.taskComplete (./.nvm/v0.10.17/lib/node_modules/sails/node_modules/async/lib/async.js:415:13) at processImmediate as _immediateCallback

Some documentation on how to use an engine other than ejs or jade would be helpful. (Or just don't claim sailjs supports it if it doesn't : ( )

Kingdutch commented 11 years ago

Ok so right after posting this I figured that since sail.js is build on express I should use hogan-middleware as a package instead of hogan.js. This doesn't feel very straightforward though and I'm not sure how this exactly translates within sailjs (like what extension will be used etc.)

EDIT: The used extension is .hogan-middleware which in turn causes a new error: Error: Failed to lookup view "home/index" at Function.app.render (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/application.js:495:17) at ServerResponse.res.render (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/response.js:756:7) at renderView (./projects/node/timemanagement/node_modules/sails/lib/hooks/views/index.js:295:20) at ServerResponse._addResViewMethod.res.view (./projects/node/timemanagement/node_modules/sails/lib/hooks/views/index.js:237:16) at serveView (./projects/node/timemanagement/node_modules/sails/lib/hooks/views/index.js:156:13) at wrapperFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:231:5) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at nextRoute (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:164:11) at rememberViewId (./projects/node/timemanagement/node_modules/sails/lib/hooks/views/index.js:153:9) at wrapperFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:231:5) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at nextRoute (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:164:11) at ./projects/node/timemanagement/node_modules/sails/lib/hooks/i18n/index.js:27:13 at Object.i18nInit as init at routes.before./* (./projects/node/timemanagement/node_modules/sails/lib/hooks/i18n/index.js:25:16) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at nextRoute (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:164:11) at routes.before./* (./projects/node/timemanagement/node_modules/sails/lib/hooks/csrf/index.js:34:6) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at nextRoute (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:164:11) at _addResViewMethod (./projects/node/timemanagement/node_modules/sails/lib/hooks/views/index.js:307:5) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at nextRoute (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:164:11) at addSugarMethods (./projects/node/timemanagement/node_modules/sails/lib/hooks/request/index.js:56:6) at _bind.enhancedFn (./projects/node/timemanagement/node_modules/sails/lib/router/bind.js:327:4) at callbacks (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:161:37) at param (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:135:11) at pass (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:170:5) at Object.router (./projects/node/timemanagement/node_modules/sails/node_modules/express/lib/router/index.js:33:10) at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.handle (./projects/node/timemanagement/node_modules/sails/lib/express/index.js:194:4) at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.methodOverride as handle at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) at ./projects/node/timemanagement/node_modules/sails/lib/express/bodyParserRetry.js:46:4 at multipart (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/multipart.js:64:37) at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9 at urlencoded (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:51:37) at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:55:7 at json (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/json.js:53:37) at bodyParser (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5) at Object.retryBodyParser as handle at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:192:9) at multipart (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/multipart.js:64:37) at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9 at urlencoded (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:51:37) at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:55:7 at json (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/json.js:53:37) at bodyParser (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5) at Object.handle (./projects/node/timemanagement/node_modules/sails/lib/express/index.js:127:12) at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) at next (./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/session.js:313:9) at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/session.js:337:9 at ./projects/node/timemanagement/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:50:9 at process._tickDomainCallback (node.js:459:13)

sgress454 commented 11 years ago

This is fixed in development branch. If you want to use Hogan, install it with "npm install hogan.js".