これが私の 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 モジュールをインストールします。
エラー: Function.Module._resolveFilename (module.js:485:15)、Function.Module._load (module.js:437:25)、Module.require (module.js:513:17)、require (internal/module.js:11:18)、新しい View (/home/software/node_modules/express/lib/view.js:80:30)、Function.render (/home/software/node_modules/express/lib/application.js:570:12)、ServerResponse.render (/home/software/node_modules/express/lib/response.js:971:7)、/home/software/Harsh Patel/pug_with_node/index.js:8:7、Layer.handle [as handle_request] でモジュール 'pug' が見つかりません(/home/software/node_modules/express/lib/router/layer.js:95:5) 次の (/home/software/node_modules/express/lib/router/route.js:137:13)
ベストアンサー1
この行を追加してみてください
app.engine('pug', require('pug').__express)
前に
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
これで私も同じ問題を解決できました!