147

シードからこの単純な変更を試み、対応する .html ファイル (例: index.html) を作成しました。

//app.set('view engine', 'jade');
app.set('view engine', 'html');

このファイルは同じままでした:

exports.index = function(req, res){
  res.render('index');
};

しかし、走っている間に私は得る

500 エラー: モジュール 'html' が見つかりません

「ejs」を使用する唯一のオプションですか? 私の意図は、AngularJS と組み合わせてプレーンな HTML を使用することでした。

4

16 に答える 16

104

他のリンクの回答は機能しますが、ファンキーなルーティングを設定したい場合を除き、HTML を提供するためにビュー エンジンを使用する必要はまったくありません。代わりに、静的ミドルウェアを使用してください。

app.use(express.static(__dirname + '/public'));
于 2013-07-28T19:14:28.103 に答える
39

レンダリング エンジンが jade の代わりに html を受け入れるようにするには、次の手順に従います。

  1. consolidateswigをディレクトリにインストールします。

     npm install consolidate
     npm install swig
    
  2. 次の行を app.js ファイルに追加します

    var cons = require('consolidate');
    
    // view engine setup
    app.engine('html', cons.swig)
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'html');
    
  3. ビュー テンプレートを「views」フォルダー内に .html として追加します。ノード サーバーを再起動し、ブラウザでアプリを起動します。

これで問題なく html がレンダリングされますが、JADE を学習して使用することをお勧めします。Jade は素晴らしいテンプレート エンジンであり、これを学習することで、より優れたデザインとスケーラビリティを達成することができます。

于 2016-02-14T20:10:37.667 に答える
30

あなたのapps.jsに追加するだけです

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

ビュー ファイルを .html として保持しながら、ejs ビュー エンジンを使用できるようになりました。

ソース: http://www.makebetterthings.com/node-js/how-to-use-html-with-express-node-js/

この 2 つのパッケージをインストールする必要があります。

npm install ejs --save
npm install path --save

次に、必要なパッケージをインポートします。

var path = require('path');


このようにして、ビューを.ejsではなく.htmlとして保存できます。 html をサポートしているが ejs を認識しない IDE で作業する場合に非常に役立ちます。

于 2016-06-25T05:34:15.210 に答える
20

単純なプレーン html ファイルで angular を使用する場合は、ビュー エンジンは必要ありません。これを行う方法は次のとおりです。route.jsファイル内:

router.get('/', (req, res) => {
   res.sendFile('index.html', {
     root: 'yourPathToIndexDirectory'
   });
});
于 2016-09-06T12:47:11.057 に答える
18

サーバー構成でこれを試してください

app.configure(function() {
    app.use(express.static(__dirname + '/public'));         // set the static files location
    app.use(express.logger('dev'));                         // log every request to the console
    app.use(express.bodyParser());                          // pull information from html in POST
    app.use(express.methodOverride());                      // simulate DELETE and PUT
    app.use(express.favicon(__dirname + '/public/img/favicon.ico'));
});

ルートへのコールバック関数は次のようになります。

function(req, res) {
    res.sendfile('./public/index.html');
};
于 2014-03-05T22:50:27.597 に答える