javascript - TypeError: app.use() 需要一个中间件函数
问题描述
每次我在添加用户路由后尝试运行应用程序时都会出现类似这样的错误
C:\Users\adity\Desktop\thinkster\medium-api\node_modules\express\lib\application.js:210
throw new TypeError('app.use() requires a middleware function')
^
TypeError: app.use() requires a middleware function
at Function.use (C:\Users\adity\Desktop\thinkster\medium-api\node_modules\express\lib\application.js:210:11)
at Object.<anonymous> (C:\Users\adity\Desktop\thinkster\medium-api\app.js:15:5)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
[nodemon] app crashed - waiting for file changes before starting...
这是我的文件结构
应用程序.js
const app = express();
app.use('./routes');
路线/index.js
const express = require('express');
const router = express.Router();
router.use('/api', require('./api'));
module.exports = router;
路线/api/index.js
const express = require('express');
const router = express.Router();
router.use('/', require('./users'));
module.exports = router;
路线/api/users.js
const express = require('express');
const router = express.Router();
router.get('/users', (req, res) => res.send('Hello world'));
module.exports = router;
我找到了一个名为 realworld.io 的网站,我正在遵循一种制作 nodejs API 的方法,但我每次都被卡住了。而且我找不到问题出在哪里。
解决方案
app.use('./routes');
您的代码app.js
不正确(只有一个字符串参数,违反了app.use()
语法)。
要正确定义“路线”,代码如下所示:
// app.js
const app = express();
const routes = require('./routes');
app.use('/', routes);
推荐阅读
- c# - 如何从 C# 代码正确使用 Scoped 服务
- reactjs - 反应和 Nodejs
- python - 如何使用字符串访问类方法
- android - Flutter:当其他小部件可用时,ListView 的高度会降低
- sql - 如何在 SQL Server 中分隔逗号分隔值:对当前查询的改进?
- gridview - 单击下一页时Gridview正在清除
- jenkins - jenkins 在特定代理/节点上执行 shell
- ruby-on-rails - HTTPParty 文件上传
- javascript - 列表项组件未在反应 js 中的状态更改时更新
- vue.js - 子路由中的 vue-router 命名视图不起作用