fil*_*rak 0 javascript routing node.js express
我现在的 WebAPI 代码非常模块化。但我希望它更多。
我有一个包含所有路由的 server.js 文件,我想将它们拆分为单独的控制器。关于如何做到这一点的任何想法?下面是一个例子:
app.get('/users/me', authenticate, (req, res) => {
res.send(req.user);
});
Run Code Online (Sandbox Code Playgroud)
我的 server.js 文件中有一堆这样的路由。我将如何使用我的用户路由创建一个 user-routes.js 文件?同样对于我设置的所有其他集合的路线。
app.post('/firm', authenticate, (req, res) => {
var firm = new Firm({
name: req.body.name,
number: req.body.number,
_creator: req.user._id
});
Firm.findOne({
number: req.body.number,
_creator: req.user._id
}).then(firmFound => {
if (firmFound) {
return res.status(400).send({
message: 'Firm with that name or number already exists.'
})
}
firm.save().then((firm) => {
res.send(firm);
}, (e) => {
res.status(400).send(e);
});
});
});
Run Code Online (Sandbox Code Playgroud)
在子文件上,例如users.js您可以定义一个新的Router:
const users = Express.Router();
users.get("/me", () => "whatever");
module.exports = users;
Run Code Online (Sandbox Code Playgroud)
这适用于您的所有子路由,甚至子子路由。然后在更高的实例上,您只需要在其路径下挂载该子路由(例如 server.js):
app.use("/users/", require("users.js"));
Run Code Online (Sandbox Code Playgroud)