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

Kri*_*eck 6 javascript node.js express

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

目录结构:

app
   assets
   controller
   model
   view
      index.jade
global
node_modules
app.js
package.json
Run Code Online (Sandbox Code Playgroud)

-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');
Run Code Online (Sandbox Code Playgroud)

运行命令后node app转到localhost:3000.我收到以下错误.我假设它不喜欢这一行上的字符串 - > res.render('index', {title: 'express'});.但是,我在Google上发现的一切似乎都是对的.所以我必须遗漏别的东西.

错误信息:

TypeError:string不是ServerResponse.res.render上的Function.app.render(C:\ myapp\express \node_modules\express\lib\application.js:488:12)中的函数(C:\ myapp\express \node_modules\express\lib\response.js:803:7)在C:\ myapp\express\app.js:19:6回调(C:\ myapp\express \node_modules\express\lib\router\index.js: 164:37)在param(C:\ myapp\express \node_modules\express\lib\router\index.js:138:11)传递(C:\ myapp\express \node_modules\express\lib\router\index). js:145:5)在Object.router上的Router._dispatch(C:\ myapp\express \node_modules\express\lib\router\index.js:173:5)(C:\ myapp\express \node_modules\express\lib\router\index.js:33:10)at atxt(C:\ myapp\express \node_modules\express \node_modules\connect\lib\proto.js:190:15)at Object.expressInit [as handle](C) :\ MyApp的\快递\node_modules \表达\ lib中\ middleware.js:30:5)

Pet*_*ons 15

我认为这只是一个错误/错误设置'view'(单数)而不是'views'(复数).看看这个例子.我认为快速应用程序对象具有"视图"和"视图"设置,但它们意味着不同的东西.

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

这是你明确的解决方法:

  app.set('views', __dirname + '/app/view');
Run Code Online (Sandbox Code Playgroud)