如何在nodejs&中更好地组织我的路线?表达?

时间:2018-02-05 18:14:55

标签: javascript node.js express routing

我现在的WebAPI代码非常模块化。但我希望它更多。

我有这个包含所有路由的server.js文件,我想将它们分成单独的控制器。有关如何做到这一点的任何想法?这是一个例子:

app.get('/users/me', authenticate, (req, res) => {
    res.send(req.user);
});

我的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);
        });

    });
});

1 个答案:

答案 0 :(得分:4)

在子文件上,例如users.js您可以定义新的Router

const users = Express.Router();

users.get("/me", () => "whatever");

module.exports = users;

这适用于所有子路由甚至子路由。 然后在更高的实例上,您只需要在其路径下安装该子路径(例如server.js):

app.use("/users/", require("users.js"));