Node.js Node/Express.js使用不同文件处理请求

Node.js Node/Express.js使用不同文件处理请求,node.js,express,middleware,Node.js,Express,Middleware,//server.js app.use('/shelf', require('./books').middleware); app.use('/shelf', require('./handler')); app.use('/shelf', require('./books').middleware); //books.js var app = new express.Router(); app.post('/books' , function (req, res) { console.l

//server.js

app.use('/shelf', require('./books').middleware);
app.use('/shelf', require('./handler'));
app.use('/shelf', require('./books').middleware);
//books.js

var app = new express.Router();

app.post('/books' , function (req, res) {
console.log('here');
});

module.exports = app;
这就是我到目前为止所做的;我的服务器在server.js下运行,当我发出“/shelf/books”请求时,它首先进入server.js,然后进入books.js文件并记录“here”。但是我想在另一个文件handler.js中添加一个请求handler,即我想在其中验证post参数是否是一个数字,如果是,则将其重定向到books.js。

这怎么样

//handler.js

module.exports = function (req, res, next) {
    req.check_result = /\d+/.test(req.body.yourfield); 
};
//book.js

app.post('/books' , function (req, res) {
    if(req.check_result) {
        // your code
    } else {
        // your code
    }
});
//server.js

app.use('/shelf', require('./handler'));
app.use('/shelf', require('./books').middleware);
app.js

handler.js

module.exports = function (req, res, next) {
    req.check_result = /\d+/.test(req.body.yourfield); 
};
books.js


我想在另一个文件中进行验证,然后继续路由。因此,在server.js之后,我希望能够签入handler.js,然后继续。服务器->处理程序->书籍我也希望能够发布/shelf并记录一些东西,例如,但现在它无法从app.use中发布/post shelfremove'/shelf',然后是app.post'/shelf'。。。;app.post'/shelf/:book'。。。;如何将其应用于函数,而不是handler.js中的router.get。我想在handler.js中有一个函数,并在验证后将参数传递给books,这样我就可以在那里发表文章了。
var express = require('express')

var app = new express.Router();


module.exports = function(req, res) {
  console.log("\t in books module")
};