Index.jsファイルは次のとおりです。
const express = require('express')
const app = express()
app.set('views', __dirname + '/views');
app.set('view engine', 'pug')
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!' })
})
app.listen(3333, function () {
console.log('Example app listening on port 3333!')
})
index.pugファイル:
html
head
title= title
body
h1= Hello
package.jsonファイル:
{
"name": "@npm-private/pug_with_node",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.15.3",
"jade": "^1.11.0",
"pug": "^2.0.0-rc.2"
}
}
サーバーファイルを実行すると、エラーが表示されます。実際、私はpugとjade両方のnpmモジュールをインストールします:
エラー:Module.require(module.js:513:17)のFunction.Module._load(module.js:437:25)のFunction.Module._resolveFilename(module.js:485:15)でモジュール 'pug'が見つかりません)require(internal/module.js:11:18)at新しいビュー(/home/software/node_modules/express/lib/view.js:80:30)at Function.render(/ home/software/node_modules/express /lib/application.js:570:12)ServerResponse.render(/home/software/node_modules/express/lib/response.js:971:7)at/home/software/Harsh Patel/pug_with_node/index.js: 8:7 at Layer.handle [as handle_request](/home/software/node_modules/express/lib/router/layer.js:95:5)at next(/ home/software/node_modules/express/lib/router/route .js:137:13)
この行を追加してみてください
app.engine('pug', require('pug').__express)
前
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
これは私にとって同じ問題を解決しました!
グローバルとローカル間でモジュールのインストールが一致しない場合、すべてのモジュールをインストールした場合でもこの問題が発生します。 package.jsonに依存関係を含めることにより、プロジェクトにローカルなものをすべてインストールすることをお勧めします
npm install --save express jade pug
パグを再インストールすると、これが修正されました:
yarn remove pug
yarn add pug
ヒントを提供してくれたRon Roystonに感謝します。 エラー:モジュール 'pug'が見つかりません
Runnig:npm install express
私のために働いた
エクスプレスをローカルにインストールするのを忘れていました。
また、必ずパグをインストールしてください。 (実行:npm i pug
)
詳細な説明:
私のシステムでは、ローカルに(npm install express
)。そのため、expressは他の場所から実行されていたため、ローカルpugモジュールを見つけることができませんでした。
依存関係でExpressを使用している場合、インストールしたという意味ではないことに注意してください。実行npm install
すべての依存関係がインストールされていることを確認します。
プロジェクトのターミナルにそのようなパグをインストールします:
npm install --save ejs pug express-handlebars
app.jsエクスプレス
const app = express();
app.set('view engine', 'pug');
app.set('views', 'views');
package.jsonでこのようになります
"dependencies": {
"body-parser": "^1.18.3",
"ejs": "^2.6.1",
"express": "^4.16.4",
"express-handlebars": "^3.0.0",
"pug": "^2.0.3"
}