如何在 ES6 中配置 express 路由器?
Posted
技术标签:
【中文标题】如何在 ES6 中配置 express 路由器?【英文标题】:How to configure express router along with ES6? 【发布时间】:2016-02-14 05:33:27 【问题描述】:我在 express 中有以下用于路由器文件的代码。
import express from 'express';
import _ from 'lodash';
import Devices, OwlElecMonitors from '../models/';
var router = express.Router();
router.get('/api/devices/:id',function (req, res)
console.log(req);
Devices.getDevicesByUserId( userId: req.params.id ,function(err, resp)
res.send(resp);
);
);
export default router;
我正在尝试使用以下代码将其导入主文件
import api from './routes';
app.use('/api', api);
但代码返回 404 错误。我哪里错了?我需要进行哪些更改才能使其正常工作?
【问题讨论】:
你是怎么运行这个的?即使使用--harmony_modules
标志,我也无法让 ES6 模块工作。
使用打字稿会帮助你
【参考方案1】:
也可以通过跳过挂载参数来解决:
import api from './routes';
app.use(api);
【讨论】:
这实际上对我有用。有趣的是,如果我提供 mount 参数 - 它会中断并返回“Cannot GET /foo”......为什么? 啊,找到了: // 使用路由器和 401 任何通过 app.use('/admin', router, function (req, res) res.sendStatus(401) ) 在:expressjs.com/en/guide/using-middleware.html【参考方案2】:您的 api 当前设置为 /api/api/devices/:id
。
从路由器获取定义中删除/api
:
router
.get('/devices/:id',function (req, res)
【讨论】:
谢谢,这就是问题所在。以上是关于如何在 ES6 中配置 express 路由器?的主要内容,如果未能解决你的问题,请参考以下文章