javascript - 如何在 Nodejs 和 Express 中更好地组织我的路线?

标签 javascript node.js express routes

我想说,我目前的 WebAPI 代码非常模块化。但我希望它更多。

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

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

    });
});

最佳答案

在子文件上,例如users.js 你可以定义一个新的Router:

const users = Express.Router();

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

module.exports = users;

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

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

关于javascript - 如何在 Nodejs 和 Express 中更好地组织我的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48628904/

相关文章:

node.js - 在函数返回值之前等待 promise 解决

JavaScript if (x==y==z) :

javascript - 访问外部 iframe 内容

javascript - 从小数点后第三位开始不四舍五入

javascript - Socket.io 将两个客户端添加到房间

sql - 根据数据库中的id获取express js url路由

node.js - 如何访问 promise 中的值(value)?

javascript - Material-UI Masonry : Remove space on right side

node.js - 显示 Mongoose 查询到 pug 的结果

node.js - 如何从嵌套数组中获取 promise ?