Error: Failed to lookup view "index" in views directory
Walking through the May 2015 article Riding ExpressJs and Node.js to the Web, I ran into this error. The file index.jade seems to be in the right place. \
Error: Failed to lookup view "index" in views directory "/home/iusr0042/node-js/nodejs_expressjs/views"
at EventEmitter.render (/home/iusr0042/node_modules/express/lib/application.js:579:17)
at ServerResponse.render (/home/iusr0042/node_modules/express/lib/response.js:961:7)
at /home/iusr0042/node-js/nodejs_expressjs/app.js:11:6
at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5)
at next (/home/iusr0042/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/iusr0042/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5)
at /home/iusr0042/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/iusr0042/node_modules/express/lib/router/index.js:330:12)
at next (/home/iusr0042/node_modules/express/lib/router/index.js:271:10)
// ---app.js---
var express = require('express')
var app = express()
app.set('views', __dirname + '/views');
// console.log('views', __dirname + '/views');
app.set('view engine', __dirname + '/node_modules/jade');
// console.log('view engine', __dirname + '/node_modules/jade');
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'})
})
/* app.get('/', function (req, res) {
res.send('Hello World')
}) */
app.listen(80)``
#!node
```
Comments (17)
-
-
reporter When I used jade, I got the following error.
$ node app.js views /home/iusr0042/node-js/nodejs_expressjs/views Error: Cannot find module 'jade'** at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at new View (/home/iusr0042/node_modules/express/lib/view.js:78:30) at EventEmitter.render (/home/iusr0042/node_modules/express/lib/application.js:569:12) at ServerResponse.render (/home/iusr0042/node_modules/express/lib/response.js:961:7) at /home/iusr0042/node-js/nodejs_expressjs/app.js:9:6 at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5) at next (/home/iusr0042/node_modules/express/lib/router/route.js:131:13) ^C
-
Please document the steps you are taking to run the program and the context. For example:
$ ssh aaron@ibmi $ cd path/to/app/dir $ ls -all $ ls -all node_modules $ node app.js
-
reporter here is the documentation. let me know if you need anything else
Welcome to Secure Shell version 0.8.34. Answers to Frequently Asked Questions: http://goo.gl/TK7876 Connecting to IUSR0042@V7R1DEV.IDEVCLOUD.COM... Loading NaCl plugin... done. IUSR0042@v7r1dev.idevcloud.com's password: $ cd /home/iusr0042/node-js/nodejs_expressjs $ ls -all total 112 drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 . drwxr-sr-x 3 iusr0042 0 12288 Mar 4 14:31 .. -rwxr-xr-x 1 iusr0042 0 473 Mar 4 15:58 app.js drwxr-sr-x 4 iusr0042 0 8192 Mar 4 14:32 node_modules -rw-r--r-- 1 iusr0042 0 257 Mar 4 14:32 package.json drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 views $ ls -all views total 56 drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. -rw-r--r-- 1 iusr0042 0 50 Mar 4 14:37 index.jade $ ls -all node_modules total 112 drwxr-sr-x 4 iusr0042 0 8192 Mar 4 14:32 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. drwxr-sr-x 2 iusr0042 0 8192 Mar 4 14:32 .bin drwxr-sr-x 5 iusr0042 0 28672 Mar 4 14:32 jade $ node app.js after navigation in the browser Error: Failed to lookup view "index" in views directory "/home/iusr0042/node-js/nodejs_expressjs/views" at EventEmitter.render (/home/iusr0042/node_modules/express/lib/application.js:579:17) at ServerResponse.render (/home/iusr0042/node_modules/express/lib/response.js:961:7) at /home/iusr0042/node-js/nodejs_expressjs/app.js:11:6 at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5) at next (/home/iusr0042/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/home/iusr0042/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5) at /home/iusr0042/node_modules/express/lib/router/index.js:277:22 at Function.process_params (/home/iusr0042/node_modules/express/lib/router/index.js:330:12) at next (/home/iusr0042/node_modules/express/lib/router/index.js:271:10)
-
Could you also post the latest version of your
app.js
code? -
reporter ``` #!app.js
// ---app.js--- var express = require('express') var app = express()
app.set('views', __dirname + '/views'); // console.log('views', __dirname + '/views'); app.set('view engine', __dirname + '/node_modules/jade'); // console.log('view engine', __dirname + '/node_modules/jade');
app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'}) })
/ app.get('/', function (req, res) { res.send('Hello World') }) /
app.listen(80)```
-
Hi Robert,
Make sure to select the
Preview
button before you post so you can see your markdown rendered. I can't read your last message. -
reporter // ---app.js--- var express = require('express') var app = express() app.set('views', __dirname + '/views'); // console.log('views', __dirname + '/views'); app.set('view engine', __dirname + '/node_modules/jade'); // console.log('view engine', __dirname + '/node_modules/jade'); app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'}) }) /* app.get('/', function (req, res) { res.send('Hello World') }) */ app.listen(80)
-
Hi Robert,
Earlier in this thread we discussed the
view engine
line of code should not have a path in it. It should be the following:app.set('view engine', 'jade')
Also, try using this line for the
views
location instead of the one you have:app.set('views', './views');
-
reporter Welcome to Secure Shell version 0.8.34. Answers to Frequently Asked Questions: http://goo.gl/TK7876 Connecting to IUSR0042@V7R1DEV.IDEVCLOUD.COM... Loading NaCl plugin... done. IUSR0042@v7r1dev.idevcloud.com's password: $ cd /home/iusr0042/node-js/nodejs_expressjs $ ls -all total 112 drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 . drwxr-sr-x 3 iusr0042 0 12288 Mar 4 14:31 .. -rwxr-xr-x 1 iusr0042 0 510 Mar 8 10:39 app.js drwxr-sr-x 4 iusr0042 0 8192 Mar 4 14:32 node_modules -rw-r--r-- 1 iusr0042 0 257 Mar 4 14:32 package.json drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 views $ ls -all node_modules total 112 drwxr-sr-x 4 iusr0042 0 8192 Mar 4 14:32 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. drwxr-sr-x 2 iusr0042 0 8192 Mar 4 14:32 .bin drwxr-sr-x 5 iusr0042 0 28672 Mar 4 14:32 jade $ ls -all views total 56 drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. -rw-r--r-- 1 iusr0042 0 50 Mar 4 14:37 index.jade $
// ---app.js--- var express = require('express') var app = express() app.set('views', __dirname + './views'); // console.log('views', __dirname + '/views'); // app.set('view engine', __dirname + '/node_modules/jade'); // console.log('view engine', __dirname + '/node_modules/jade'); app.set('view engine', 'jade'); app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'}) }) /* app.get('/', function (req, res) { res.send('Hello World') }) */ app.listen(80)```
#!runapp.js
$ node app.js Error: Cannot find module 'jade' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at new View (/home/iusr0042/node_modules/express/lib/view.js:78:30) at EventEmitter.render (/home/iusr0042/node_modules/express/lib/application.js:569:12) at ServerResponse.render (/home/iusr0042/node_modules/express/lib/response.js:961:7) at /home/iusr0042/node-js/nodejs_expressjs/app.js:13:6 at Layer.handle [as handle_request] (/home/iusr0042/node_modules/express/lib/router/layer.js:95:5) at next (/home/iusr0042/node_modules/express/lib/router/route.js:131:13)```
-
Hi Robert,
You left
__dirname +
in theviews
line. Review my previous post.Also, I don't see the
express
module in thenode_modules/
directory. Install it using this command:$ cd /home/iusr0042/node-js/nodejs_expressjs $ npm install express
If you still have issues then I'd recommend removing Jade and re-installing it:
$ cd /home/iusr0042/node-js/nodejs_expressjs $ rm -rf node_modules/jade $ npm install jade
-
reporter I will attempt to reinstall as you have suggested. Thanks
-
reporter I think the missing express module did the trick. Now all is working as expected. Thanks again.
Welcome to Secure Shell version 0.8.34. Answers to Frequently Asked Questions: http://goo.gl/TK7876 Connecting to IUSR0042@V7R1DEV.IDEVCLOUD.COM... Loading NaCl plugin... done. IUSR0042@v7r1dev.idevcloud.com's password: $ cd /home/iusr0042/node-js/nodejs_expressjs $ ls -all total 112 drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 . drwxr-sr-x 3 iusr0042 0 12288 Mar 4 14:31 .. -rwxr-xr-x 1 iusr0042 0 511 Mar 8 10:53 app.js drwxr-sr-x 5 iusr0042 0 8192 Mar 8 11:01 node_modules -rw-r--r-- 1 iusr0042 0 257 Mar 4 14:32 package.json drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 views $ ls -all node_modules total 136 drwxr-sr-x 5 iusr0042 0 8192 Mar 8 11:01 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. drwxr-sr-x 2 iusr0042 0 8192 Mar 8 11:01 .bin drwxr-sr-x 4 iusr0042 0 12288 Mar 8 10:59 express drwxr-sr-x 5 iusr0042 0 28672 Mar 8 11:01 jade $ ls -all views total 56 drwxr-sr-x 2 iusr0042 0 8192 Mar 4 15:57 . drwxr-sr-x 4 iusr0042 0 12288 Mar 4 15:58 .. -rw-r--r-- 1 iusr0042 0 50 Mar 4 14:37 index.jade $ node app.js
// ---app.js--- var express = require('express') var app = express() app.set('views', './views'); app.set('view engine', 'jade'); app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'}) }) /* app.get('/', function (req, res) { res.send('Hello World') }) */ app.listen(80)
-
Good deal! It's odd the program didn't bomb out sooner given the
require('express')
should have failed. Not sure why that happened but will keep that in mind for others that might have similar issues.I will mark this as resolved.
-
- changed status to resolved
-
reporter One additional comment. I was able to complete the rest of the code without issue in the article. It provided a great base to see how I can use node.js on IBM i.
-
Excellent.
If you are looking for more thorough training you can also check out the training course I will be using at the 2016 Spring tradeshows (WMCPA, NEUGC). Right now it combines most of the articles I've written into a single document and it will eventually go further. Right now it is meant to fill a 2.5hr timeslot at a conference.
##Click here if you are interested in taking the course (free). I welcome any and all feedback.
- Log in to comment
Hi Robert,
You have this for the
view engine
:and it should be this: