NodeJs使用ExpressJs:TypeError:string不是Function.app.render的函数

我刚开始学习Node,我正在尝试使用Node和Express构build一个Web应用程序。 我在我的app.js文件中有以下代码,具有以下目录结构。

目录结构:

app assets controller model view index.jade global node_modules app.js package.json 

-js-

 var express = require('express'); var app = express(); app.configure(function() { app.set('view', __dirname + '/app/view'); app.set('view engine', 'jade'); app.use(app.router); }); app.get('/', function(req, res){ res.render('index', {title: 'express'}); }); app.listen(3000); console.log('Listening on port 3000'); 

运行命令node app并转到本地主机:3000。 我得到以下错误。 我假设它不喜欢这一行上的string – > res.render('index', {title: 'express'}); 。 不过从我在Google上发现的所有东西看来都是正确的。 所以我一定会错过别的东西。

错误信息:

在ServerResponse.res.render(C:\ myapp \ express \ node_modules)中,TypeError:string不是Function.app.render(C:\ myapp \ express \ node_modules \ express \ lib \ application.js:488:12) (C:\ myapp \ express \ node_modules \ express \ lib \ router \ index.js:\ express \ lib \ response.js:803:7)在C:\ myapp \ express \ app.js:19: (C:\ myapp \ express \ node_modules \ express \ lib \ router \ index)的参数(C:\ myapp \ express \ node_modules \ express \ lib \ router \ index.js:138:11) Object.router(C:\ myapp \ express \ node_modules \ express \ js:145:5)在Router._dispatch(C:\ myapp \ express \ node_modules \ express \ lib \ router \ index.js:173:5) (C:\ myapp \ express \ node_modules \ express \ node_modules \ connect \ lib \ proto.js:190:15)在Object.expressInit [as handle](C:\ lib \ router \ index.js:33:10) :\ MyApp的\快递\ node_modules \expression\ lib中\ middleware.js:30:5)

我认为这只是一个错字/错误设置“观点”(单数)而不是“观点”(复数)。 看看这个例子。 我认为快速应用程序对象既有“视图”又有“视图”设置,但是它们意味着不同的东西。

https://github.com/visionmedia/express/blob/master/examples/jade/index.js

这是你的修复要清楚:

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