现在,我使用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;
之后,它可以正常工作。
为什么会出现此错误?有语法错误吗?
谢谢。
答案 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);