ES6 Router.use()需要中间件功能,但有一个对象

时间:2018-07-04 07:35:13

标签: express ecmascript-6

现在,我使用Node.js + Express制作了一些api服务器。

我安装了babel-preset-latest以使用ES6语句。

但是,当我编写一些代码时,它会引发错误->

Router.use() requires a middleware function but got a Object

[index.js]

import express from 'express';
import bodyParser from 'body-parser';

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.get('/', (req, res) => {
    res.send('main');
});
app.use('/api', require('./api/auth'));

app.listen(3000, () => {
    console.log("Express Running port 3000")
})

[/ api / auth / index.js]

import express from 'express';
const router = express.Router();


router.get('/', (res, req) => {
    res.send('auth main')
});

export default router;

在ES6中,module.export可以替换为export

但是它会引发错误。因此,在我将export default router;替换为module.exports = router;之后,它可以正常工作。

为什么会出现此错误?有语法错误吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

[已解决]

[index.js]

import express from 'express';
import bodyParser from 'body-parser';
import authRouter from './api/auth';

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.get('/', (req, res) => {
    res.send('main');
});
app.use('/api', authRouter);

app.listen(3000, () => {
    console.log("Express Running port 3000")
})

[/ api / auth / index.js]

import express from 'express';
const router = express.Router();


router.get('/', (res, req) => {
    res.send('auth main')
});

export default router;

在index.js中,定义导入语句-> import authRouter from './api/auth';

并替换app.use('/api', require('./api/auth');

app.use('/api', authRouter);