javascript - Express.js 渲染未命名为 index 的 html 文件时出错
问题描述
当我使用 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 是模板引擎函数,它接受以下项目作为参数:文件的位置、选项对象和回调函数。
用例:
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!' })
})
推荐阅读
- angular - 如何将导出的 Angular 库组件访问到我的应用程序中?
- python - 使用列表推导基于两个列表进行转换的问题。错误“int”对象不可迭代
- c - Win32 API 子窗口未出现在父区域
- reporting-services - SSRS 多值参数 - 在选择另一个参数时取消选择一个参数
- elm - elm 是否共享对象或复制它们?
- arduino - digispark 不打印符号 \,
- javascript - .减少lodash功能
- java - ListMultimap 不保持插入顺序
- python - 如何打印出拆分的索引?
- laravel - 当我们有多个 uppy 上传者时,如何为 Uppy 上传者分配(使用)输入名称