如何创建带有参数的函数可以通过express.get()方法?

时间:2019-04-08 15:27:50

标签: javascript node.js regex express

应用变量由

定义
const app = express();

此代码可以正常工作:

app.get('/posts/:id', (req, res) => {
    res.json( post_creator.CreatePost(req.params.id) );
});

但是下面的代码不起作用:

const post_url_with_id = '/posts/:id';
app.get(post_url_with_id, (req, res) => {
    res.json( post_creator.CreatePost(req.params.id) );
});

如何创建带有参数的函数,可以传递express.get或post方法?

我想像下一个功能一样实现

function serve_post( post_url_with_id ) {
    app.get(post_url_with_id, (req, res) => {
        res.json( post_creator.CreatePost(req.params.id) );
    });
}

感谢贡献者。

1 个答案:

答案 0 :(得分:0)

这可以通过传递快速app来实现,例如:

// someRoute.js
function serve_post(app, post_url_with_id ) {
    app.get(post_url_with_id, (req, res) => {
        res.json( post_creator.CreatePost(req.params.id) );
    });
}

module.exports = serve_post;

在实例化express的文件中(拥有app的文件中)

const app = express();
// assuming they are in same folder
const someRoute = require('./someRoute');

someRoute(app, post_url_with_id);