TypeError:无法读取未定义的属性'_locals'

我试图在Ubuntu 16.04中使用nodejs,我安装了节点和NPM,但我有这个错误“TypeError:无法读取未定义的属性'_locals'当我试试这个:

var express = require("express"); app = express(); bodyParser = require("body-parser"); mongoose = require("mongoose"); app.set("view engine", "ejs"); app.get("/", function(req,res){ app.render("index"); }); app.listen(3000, function(){ console.log("Server Started!"); }) 

它在terminal输出:

 Server Started! TypeError: Cannot read property '_locals' of undefined at EventEmitter.render (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/application.js:548:11) at /home/luis/Documents/work/webdevBootcamp/test/app.js:9:6 at Layer.handle [as handle_request] (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/layer.js:95:5) at next (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/layer.js:95:5) at /home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:277:22 at Function.process_params (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:330:12) at next (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:271:10) at expressInit (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/middleware/init.js:33:5) at Layer.handle [as handle_request] (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:312:13) at /home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:280:7 at Function.process_params (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:330:12) at next (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/router/index.js:271:10) at query (/home/luis/Documents/work/webdevBootcamp/test/node_modules/express/lib/middleware/query.js:44:5) 

当我加载本地主机:3000它不会呈现一个ejs文件或让我使用send()函数

 app.get("/", function(req,res){ app.send("whatever"); }); 

它说:

 TypeError: app.send is not a function 

我已经安装了express和ejs模块(运行npm install i -S express ejs mongoose body-parser)

正如@digit在评论中所说:“你不应该调用app.send来代替res.send。一个应用程序是一个路由http请求的对象。

问题是我在做什么

 app.get("/", function(req,res){ app.send("whatever"); }); 

代替

 app.get("/", function(req,res){ res.send("whatever"); // res instead of app }); 

请设置您的意见目录。 例如:如果你的索引模板文件在'src'

 app.set('views', __dirname + '/src');