[英]Express.js Error in rendering html files that are not named index
當我使用 index.html 時它不會給出任何類型的錯誤,但是每當我使用任何其他名稱時,它都會引發錯誤。 這是我的代碼:-
const express = require('express');
const app = express();
app.use(express.static('Images')); //It tells node that Images folder is the root folder
//app.set('view engine','html');
app.get("/",(req,res)=>{
res.render("home");
});
app.listen(3000,()=>{
console.log("Server listening to PORT:3000");
});
這是錯誤
Error: No default engine was specified and no extension was provided.
at new View (E:\NewExp\node_modules\express\lib\view.js:61:11)
at Function.render (E:\NewExp\node_modules\express\lib\application.js:570:12)
at ServerResponse.render (E:\NewExp\node_modules\express\lib\response.js:1012:7)
at E:\NewExp\App.js:9:8
at Layer.handle [as handle_request] (E:\NewExp\node_modules\express\lib\router\layer.js:95:5)
at next (E:\NewExp\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\NewExp\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\NewExp\node_modules\express\lib\router\layer.js:95:5)
at E:\NewExp\node_modules\express\lib\router\index.js:281:22
at Function.process_params (E:\NewExp\node_modules\express\lib\router\index.js:335:12)
為什么每當我使用除索引以外的任何其他名稱時都會出現此錯誤?
從您的代碼中,我假設您想使用html
文件(或擴展名)作為 express 的默認引擎。
來自快遞文檔:
使用 app.engine(ext, callback) 方法創建您自己的模板引擎。 ext 指的是文件擴展名,callback 是模板引擎 function,它接受以下項目作為參數:文件的位置,選項 object,以及回調 ZC1C425268E68385D1AB5074C17A94。
用例:
var fs = require('fs')
app.engine('html', function (filePath, options, callback) {
fs.readFile(filePath, function (err, content) {
if (err) return callback(err)
// simple template engine
var rendered = content.toString()
.replace('#title#', '<title>' + options.title + '</title>')
.replace('#message#', '<h1>' + options.message + '</h1>')
return callback(null, rendered)
})
})
app.set('views', './views') // specify the views directory
app.set('view engine', 'html') // register the template engine
並像這樣渲染:
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!' })
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.