我是新来表达的,我已经完成了一个教程,让我添加这样的路线:
var index = require('./routes/index');
var foods = require('./routes/foods');
并像这样使用它们:
app.use('/', index);
app.use('/api', foods);
我现在想要在/api
路径下添加另一条路由,但我不确定如何在语义上执行此操作。像这样的东西(虽然这不起作用)
server.js
var index = require('./routes/index');
var foods = require('./routes/foods');
var foods = require('./routes/users');
...
app.use('/', index);
app.use('/api', [foods, users]);
这应该允许我有这样的路线:
/api/food/:id
的/api/foods
,foods.js
来自/api/user/:id
/api/users
,users.js
答案 0 :(得分:1)
除非您使用http谓词指定意图,否则URL必须是唯一的。
var foods = require('./routes/foods');
var users = require('./routes/users');
app.get('/api/foods', foods);
app.get('/api/users', users);
app.post('/api/foods', function(req, res) { /* other function */ });
<强>更新强>
假设您希望将业务逻辑划分为单独的文件,可以使用以下方法完成此操作:
foods.js
module.exports = {
getAll: function(req, res) { ... },
getItem: function(req, res) { ... },
addItem: function(req, res) { ... }
};
users.js
module.exports = {
getAll: function(req, res) { ... },
getItem: function(req, res) { ... }
};
server.js
var foods = require('./routes/foods');
var users = require('./routes/users');
app.get('/api/food/:id', foods.getItem);
app.get('/api/foods', foods.getAll);
app.post('/api/foods', foods.addItem);
app.get('/api/user/:id', users.getItem);
app.get('/api/users', users.getAll);
我个人喜欢将路线列在文件中,它可以让您快速查找哪些路线支持哪些动词。注意我已经创建了一个额外的功能来添加新的食物。
我希望此更新有帮助