Express.js文件之间的路由

时间:2013-12-12 15:43:08

标签: node.js express

我有3个文件:server.js,bookhandler.js,books.js

我假设会有以下请求:/ book / name,/ book / type,/ book等。 根据url中的第一个字段,即book(它也可以是视频和杂志),我希望我的server.js将我引导到带有post参数的bookhandler.js文件。我只想要一个功能,我可以验证参数。如果参数有效,我想将参数传递给我的books.js文件,我可以使用这些有效参数发出我的帖子请求。如果网址的第一个字段是视频,它应该指示我使用视频处理程序等。

server.js

app.use('/book', require('./bookhandler').middleware);

这是我到目前为止所做的,它指示我使用bookhandler文件,但我不知道如何获取参数并验证函数内部

编辑:

bookhandler.js
var express = require('express');
var app = express();

module.exports.middleware = function (req, res) {

    var id = req.body.id;

    if(id.length==5) {
        app.use('/id', require('../book').middleware));
    }
};
book.js
app.post('/id' , function (req, res) {

});

module.exports = app;

1 个答案:

答案 0 :(得分:0)

您不直接执行文件,而是直接执行函数。文件只是组织函数或任何类型代码的一种方式。

根据您给出的这个示例,我假设bookhandler.js在其module.exports对象中导出名为middleware的函数。调用该函数时,将传递对请求和响应对象的引用。请求对象中包含参数。

例如:

bookhandler.js:

module.exports.middleware = function (req, res) {
    var bookId = req.params.bookId;
    // do something with bookId
};

[根据最新的问题更新编辑]

你正在覆盖module.exports。将module.exports.middleware设置为有效函数后,将module.exports替换为对app的引用。

删除此行,您的问题应该解决。

module.exports = app;