没有指定默认引擎,也没有提供扩展

时间:2020-05-22 05:32:25

标签: javascript html express static

我正在尝试仅使用html并通过我的快速服务器渲染页面。我不断收到错误消息

No default engine was specified and no extension was provided.

我已经在app.js中指定了目录名,并告诉服务器使用路由器中的目录名进行渲染。我不太确定是什么阻碍了我?有人可以提供一些见识吗?

app.js(我删除了不相关的导入语句)

var app = express();

app.use(express.static(__dirname + '/public'));  //setting static file directory
//Store all HTML files in view folder.

module.exports = app;

这是我在页面上调用渲染的索引路由器


var express = require('express');
var router = express.Router();
const path = require('path');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('main', { title: 'Express' });
});

/* GET styles page. */
router.get('/style', function(req, res, next) {
  res.render('styles', { title: 'styles' });
});

/* GET styles page. */
router.get('/style',function(req,res){
  res.sendFile(path.join(__dirname+'/style.html'));
});





module.exports = router;

1 个答案:

答案 0 :(得分:0)

如果没有像Handlebars这样的渲染器,就我所知,您无法调用res.render。如果您要提供静态视图,则无论如何都不需要渲染器,只需指定静态文件所在的文件夹即可。

这意味着在指定静态文件夹之后,您将可以通过在路径中输入文件名来访问文件。 Express' documentation on static files.您不需要路由即可发送文件。

示例

CodeSandbox Example

src
|- view
|  |- hello.html
|- index.js

index.js

const express = require("express");
//create a server object:
const app = express();

//Serve all files inside the view directory, path relative to where you started node
app.use(express.static("src/view/"));

app.listen(8080, function() {
  console.log("server running on 8080");
}); //the server object listens on port 8080

module.exports = app;

您现在将在hello.html路线上看到/hello.html。其他文件也将在其名称下可见。