1. ホーム
  2. javascript

[解決済み] エラー。モジュールhtmlが見つからない

2022-01-28 12:18:59

質問

Node.jsを使うのは久しぶりで、expressも使ったことがありません。アプリケーションを起動すると、:

Error: Cannot find module 'html'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at new View (C:\Users\fr\node_modules\express\lib\view.js:42:49)
  at Function.app.render (C:\Users\fr\node_modules\express\lib\application.js:483:12)
  at ServerResponse.res.render (C:\Users\fr\node_modules\express\lib\response.js:755:7)
  at allClients (C:\Users\fr\node_modules\apps\chat.js:13:7)
  at callbacks (C:\Users\fr\node_modules\express\lib\router\index.js:161:37)
  at param (C:\Users\fr\node_modules\express\lib\router\index.js:135:11)

test.htmlを起動するとエラーが発生しました。以下はそのコードです。

var io = require('socket.io');
var express = require('express');

var app = express(),
http = require('http'),
server = http.createServer(app),
socket = require('socket.io').listen(server);

app.configure(function(){
    app.use(express.static(__dirname));
});
app.get('/', function(req, res, next){
    res.render('./test.html');
});

server.listen(8333);

私の道:

node_modules/
    express/
    socket.io/
    apps/
        chat.js
        test.html

なぜ?

EDIT :

これは、私の新しいapp.configureです。

app.configure(function(){
    app.use(express.static(path.join(__dirname, 'public')));
});

しかし、それは返されます。

 path is not defined

解決するには?

test.htmlは静的ファイルであると仮定しています。静的ファイルをレンダリングするには 使用 というように、静的ミドルウェアを使用します。

app.use(express.static(path.join(__dirname, 'public')));

これは、アプリケーションの公開ディレクトリで静的ファイルを探すように express に指示します。

これを指定したら、ブラウザでファイルの場所を指定するだけで、表示されるはずです。

しかし、ビューをレンダリングしたい場合は、それに適したレンダラーを使用する必要があります。 コンソリデート どのライブラリを使うか決めたら、インストールするだけです。私はmustacheを使っているので、以下に設定ファイルのスニペットを示します。

プレ {コード

これは、expressに次のように伝えるものです。

  • views ディレクトリでレンダリングするファイルを探します。

  • マスタッシュを使用してファイルをレンダリングする

  • 拡張子は.html(.mustacheでも可)。