【问题标题】:Edge templating express TypeError边缘模板表达 TypeError
【发布时间】:2020-06-04 06:28:19
【问题描述】:

我在我的应用程序 node.js 中使用边缘模板引擎,我得到了错误; TypeError: app.use() requires middleware function

这是我的 index.js 代码

const path = require('path');
const express = require('express');
const expressEdge = require('express-edge');




const app = new express();

app.use(express.static('public'));
app.use(expressEdge);
app.set('views', __dirname + '/views');


app.get('/', (req, res) => {
  res.render('index');
});
app.get('/about',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/about.html'));
});
app.get('/post',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/post.html'));
});

app.get('/contact',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/contact.html'));
});


app.listen(4000,() =>{
  console.log('App listening on port 4000')
});

这就是我在应用程序中设置文件夹的方式 enter image description here

【问题讨论】:

标签: javascript node.js express


【解决方案1】:

从文档中,您应该将 expressEdge.engine 作为中间件传递给 app.use 而不是整个 expressEdge 对象。所以这就是你的 index.js 代码应该是这样的:

const path = require('path');
const express = require('express');
// Use the config method to configure express-edge if needed
const { config, engine } = require('express-edge');

const app = new express();

app.use(express.static('public'));
// Pass in the engine not the entire express-edge object
app.use(engine);
app.set('views', __dirname + '/views');


app.get('/', (req, res) => {
  res.render('index');
});
app.get('/about',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/about.html'));
});
app.get('/post',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/post.html'));
});

app.get('/contact',(req,res)=>{
  res.sendFile(path.resolve(__dirname,'pages/contact.html'));
});


app.listen(4000,() =>{
  console.log('App listening on port 4000')
});

使用文档here中的更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-18
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    相关资源
    最近更新 更多