注:投稿の最後に私の自動応答
nodeJS のエクスペリエンスを向上させようとしていますが、すべてのスクリプトを 1 つのファイルにまとめるのはあまり好きではありません。
だから、ここの投稿に続いて、私はこの構造を使用します
./
config/
enviroment.js
routes.js
public/
css/
styles.css
images
views
index
index.jade
section
index.jade
layout.jade
app.js
私のファイルは現在:
app.js
var express = require('express');
var app = module.exports = express.createServer();
require('./config/enviroment.js')(app, express);
require('./config/routes.js')(app);
app.listen(3000);
環境.js
module.exports = function(app, express) {
app.configure(function() {
app.use(express.logger());
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'jade'); //extension of views
});
//development configuration
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
//production configuration
app.configure('production', function() {
app.use(express.errorHandler());
});
};
ルート.js
module.exports = function(app) {
app.get(['/','/index', '/inicio'], function(req, res) {
res.render('index/index');
});
app.get('/test', function(req, res) {
//res.render('index/index');
});
};
レイアウト.ジェイド
!!! 5
html
head
link(rel='stylesheet', href='/css/style.css')
title Express + Jade
body
#main
h1 Content goes here
#container!= body
index/index.jade
h1 algoa
私が得るエラーは次のとおりです。
エラー: レンダー (c:\xampp\htdocs) で Function.render (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\application.js:495:17) でビュー "index/index" を検索できませんでした\nodejs\buses\node_modules\express\lib\response.js:614:9) で ServerResponse.render (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\response.js:638:5) でc:\xampp\htdocs\nodejs\buses\config\routes.js:4:7 コールバックで (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\router\index.js:177:11)パラメーター (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\router\index.js:151:11) でパス (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\) router\index.js:158:5) の Router._dispatch (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\router\index.js:185:4) の Object.router [ハンドルとして] (c:\xampp\htdocs\nodejs\buses\node_modules\express\lib\router\index.js:45:10) 次の (c:\xampp\htdocs\nodejs\buses\node_modules\express\node_modules\connect\lib\proto) .js:191:15)
しかし、何が問題なのかよくわかりません...
モジュールがエクスポートするためだと思い始めています...
回答: 私が見つけたユニークな解決策は、app.set('views') とビュー エンジンを定義した場所を変更することです。
それを app.js に移動したところ、うまく機能しています。
var express = require('express');
var app = module.exports = express.createServer();
require('./config/enviroment.js')(app, express);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
require('./config/routes.js')(app);
app.listen(3000);
この背後にあるロジックはよくわかりませんが、あると思います。