我有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;
答案 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;