当前位置: 首页 > 知识库问答 >
问题:

应用程序。use()需要express edge中的中间件函数

巫经义
2023-03-14

我正在使用NodeJS创建博客,并遵循本教程https://vegibit.com/node-js-blog-tutorial/但现在我卡住了,它给我的应用程序上的错误。使用('express-edge')这是我的代码

const path = require('path');
const expressEdge = require('express-edge');
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
 
const app = new express();
 
mongoose.connect('mongodb://localhost:27017/node-blog', {
        useNewUrlParser: true
    })
    .then(() => 'You are now connected to Mongo!')
    .catch(err => console.error('Something went wrong', err))
 
app.use(express.static('public'));
app.use(expressEdge);
app.set('views', __dirname + '/views');
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
    extended: true
}));
 
app.get('/', (req, res) => {
    res.render('index');
});
 
app.get('/posts/new', (req, res) => {
    res.render('create')
});
 
app.post('/posts/store', (req, res) => {
    console.log(req.body)
    res.redirect('/')
});
 
app.listen(4000, () => {
    console.log('App listening on port 4000')
});

我的错误看起来像[nodemal]启动节点index.jsC:\用户\91762\桌面\博客\node_modules\快递\lib\application.js:210抛出新的TypeError('app.use()需要一个中间件函数')^

类型错误:应用程序。use()需要在函数处使用中间件函数。在对象上使用(C:\Users\91762\Desktop\Blog\node\u modules\express\lib\application.js:210:11)。(C:\Users\91762\Desktop\Blog\index.js:16:5)位于模块_在对象处编译(internal/modules/cjs/loader.js:945:30)。模块_扩展。。模块处的js(internal/modules/cjs/loader.js:962:10)。在函数处加载(内部/modules/cjs/loader.js:798:32)。模块_在函数处加载(内部/modules/cjs/loader.js:711:12)。单元在internal/main/run\u main\u模块处运行main(internal/modules/cjs/loader.js:1014:10)。js:17:11[nodemon]应用程序崩溃-在启动前等待文件更改。。。

共有2个答案

单淳
2023-03-14

像处理程序一样使用它是最好的选择。

app.use(expressEdge.engine);
夏俊人
2023-03-14

也许教程是过时的,最新版本的Expres-edge不导出边缘引擎作为默认导出,包导出一个对象,其中包括配置,引擎。

如果节点版本支持对象分解,则可以遵循包文档。

...
const { engine } = require('express-edge');
...
app.use(engine);
...

或者,只需在代码中稍作更改:

app.use(expressEdge.engine); // instead of app.use(expressEdge);
 类似资料:
  • 这是我的错误。我是第一次用这个制作网页。请帮助我这个错误说明了什么。 TypeError:app.use()需要中间件函数 在EventeMitter.use(c:\users\my APY\webstormProjects\main\node_modules\express\lib\application.js:209:11) 在module.exports(c:\users\my LAPY\w

  • 我正在构建一个Flink流媒体系统,可以处理实时数据和历史数据。所有数据都来自同一来源,然后将其拆分为历史数据和实时数据。实时数据得到时间戳和水印,而历史数据则按顺序接收。活动流打开窗口后,两个流将联合并流入同一个处理管道。 如果EventTime流媒体环境中的所有记录都需要加时间戳,或者Flink是否可以同时处理实时数据和历史数据的混合,我在任何地方都找不到。这是一种可行的方法,还是会造成我经验

  • 我一直在将我的一个项目迁移到JavaFX,并开始遇到线程问题。我将附上一个简短的示例。经过多次搜索,我设法解决了问题。我无法在 fx 应用程序线程之外更改 tableView 数据。我将我的代码从使用摇摆工人切换到任务。 起初,这一直有效,直到我向表的可观察列表添加了一个更改侦听器。然后我收到错误“不在FX应用程序线程上;” 当我尝试更新标签的值时,在onChanged方法中发生了错误。我通过将它

  • 我用的是Intellij Idea 2020.3.3。我有很多spring boot应用(微服务),我已经运行了将近两年。有一天,我在调试器中启动了它们,现在初始化需要大约200秒,而不使用调试器则需要大约25秒。从一天到下一天没有什么变化-调试模式只是启动了10倍。 我不确定在这里显示哪些信息对诊断这个有帮助。有没有人有一个通用的检查表,列出了通常会导致调试速度如此之慢的东西?不仅仅是初始化--

  • 问题内容: 我见过的每一个tkinter教程都声称必须绘制窗口并处理事件,并且它们总是调用此函数,即使在hello world程序中也是如此。但是,当我在交互式外壳程序中尝试这些方法时,可以正确绘制窗口,而不必调用mainloop。 这个在tkinter中嵌入matplotlib图形的示例产生了一个相对复杂的应用程序,它具有用于在tkinter窗口内平移,缩放和调整图大小的按钮,而且,如果您删除对

  • 我们的应用程序有DB14版本,并使用android sqllite帮助器。现在我们正在使用房间数据库,并将所有数据库的东西迁移到房间。我们已经定义了从1_2,2_3的所有迁移。到13_14,并给出所有这些int构建 这是正确的做法吗。如果我用DB14版本安装了非房间版本的应用程序,并且我试图用相同的DB14版本更新它到房间版本的应用程序,我会得到错误: IllegalStateException: