TypeError-Router.use()需要中间件功能,但未定义

时间:2018-08-31 18:51:00

标签: javascript node.js express

因此,我尝试使用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;

1 个答案:

答案 0 :(得分:0)

使用默认导出时:

export default router;

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

import Orders from './routes/order'

或者,如果要保持导入语法不变,可以更改导出,使其不是默认设置:

export { router }