【问题标题】:TypeError - Router.use() requires a middleware function but got a undefinedTypeError - Router.use() 需要一个中间件函数但有一个未定义的
【发布时间】:2018-08-31 18:50:59
【问题描述】:

所以我正在尝试使用 express 和 nodejs 创建一个 RESTful api。当我运行 npm start 来启动服务器时,它会抛出一个错误,说 Router.use() 需要一个中间件,但有一个未定义的。任何想法可能是什么问题。我的代码粘贴在下面。

提前致谢

server.js

import express from 'express';
import bodyParser from 'body-parser';
import { router as Orders } from './routes/order';

const app = express();

// PORT Number
const PORT = process.env.PORT || '3000';

//  Setting up the body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// Setting up middleware for a specific route
app.use('/api', Orders);

app.listen(PORT, () => {
  console.log(`Running application on port ${PORT}`);
});

order.js 路由

import express from 'express';

const router = express.Router();

router.get('/', (req, res, next) => {
  res.send('Hello from api');
  next();
});

export default router;

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    使用默认导出时:

    export default router;
    

    您应该使用以下语法导入它:

    import Orders from './routes/order'
    

    或者,如果您想保持导入语法相同,您可以更改导出,使其不是默认值:

    export { router }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2015-04-17
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2017-10-20
      相关资源
      最近更新 更多