【发布时间】:2016-06-09 20:05:50
【问题描述】:
我正在准备用于生产的 Node/Express API,但是有一些问题/建议需要帮助:
1 - 我正在使用 npm 包 cors - 这样做是为了开发基本上禁用 CORS,但是现在我正在转向生产,我只希望某些 URLS 能够访问 API。
所以我看到的是:
var corsOptions = {
origin: 'http://www.example.com',
methods: ['GET', 'POST']
};
app.get('*', cors(corsOptions), function(req, res, next) {
res.json({msg: 'This is CORS-enabled for only example.com.'});
});
但是(据我所见)我需要为每个请求类型执行此操作,例如
app.post('*', cors(corsOptions), function(req, res, next) {
res.json({msg: 'This is CORS-enabled for only example.com.'});
});
app.del('*', cors(corsOptions), function(req, res, next) {
res.json({msg: 'This is CORS-enabled for only example.com.'});
});
有没有更简单的方法来避免这种重复?
2 - 第二个问题 - 我有一长串 API 路由,例如
router.post('/registerUser', function(req, res) {
...
}
是否可以放置某种“否则”行,以便如果路线与我定义的任何内容都不匹配,我可以返回特定的内容?
谢谢。
【问题讨论】:
-
对于第二个问题,您可以在主文件中使用以下代码(如果没有路由匹配,这将被执行):
app.use(function(req, res, next) { // your custom response here });
标签: node.js express routing cors