Nodeを学習し始めました.Node and Expressを使用してWebアプリケーションを構築しようとしています。 app.jsファイルに、次のディレクトリ構造を持つ次のコードがあります。ExpressJsを使用するNodeJs:TypeError:stringはFunction.app.renderの関数ではありません
ディレクトリ構造:3000:
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
を実行し、localhostに行く後。次のエラーが表示されます。私はそれがこの行の文字列を好きではないと仮定しています - >res.render('index', {title: 'express'});
。しかし、私はGoogleで見つけたすべてから、これは正しいようです。だから私は別のものを逃しているに違いない。
エラーメッセージ:
TypeError例外:stringはFunction.app.renderで関数でない(C:\ myappの\発現\ node_modules \発現\ LIB \ application.js:12:488)ServerResponseでC:\ myapp \ express \ app.js:19:6のコールバック(C:\ myapp \ express)で.res.render(C:\ myapp \ express \ node_modules \ express \ lib \ response.js:803:7) \ myapp \ express \ node_modules \ express \ lib \ router \ index.js:138:11)のパス(C:\ myapp(\ node_modules \ express \ lib \ router \ index.js: \ myapp \ express \ node_modules \ express \ lib \ router \ index.js:173:5)の\\ Express \ (C:\ myapp \ express \ node_mod)にあるルータ(C:\ myapp \ express \ node_modules \ express \ lib \ router \ index.js:33:10) (C:¥myapp¥express¥node_modules¥express¥lib¥middleware.js:30:5)
でule \ express \ node_modules \ connect \ lib \ proto.js:190:15)
うん、。もちろん、私はインデントのための新しいエロルを持っています。しかし、私はそれを修正することができます。私は 'views'が私のディレクトリ名と一致することを前提としていました。私は間違っていたと思います。とにかく助けてくれてありがとう。 –
ええとTJは最初は非常に混乱していますが、一度それから簡潔です。 'app.get'、' app.use'、 'app.configure'はループのnoobsを投げます。これはちょうど 'app.set( 'viewPath')' IMHOでなければなりません。また、 'app.configure'ラッパーを正確にジャックスクワットを達成するように削除することもできます。 –