javascript - 如何创建带参数的函数可以传递express.get()方法?

标签 javascript node.js regex express

app 变量定义为

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

感谢贡献者。

最佳答案

这可以通过传递 Express 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);

关于javascript - 如何创建带参数的函数可以传递express.get()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576882/

相关文章:

javascript - JavaScript 中的屏幕抓取

node.js - 如何在带有 Angular 和 TypeScript 的 Ionic 2 中使用 aws-sdk

javascript - 如何推送到异步任务中的列表并仅在异步任务完成后才返回列表?

javascript - symfony 2.8 : error when assetic:dump

node.js - 如何将我的自定义 npm 包添加到 TypeScript 定义管理器?

php - 我是否破坏了将 NodeJS/socket.io 与我的 AJAX 脚本一起使用的好处?

Javascript 正则表达式不敏感的土耳其字符问题

iphone - 准确验证 URL

php - 在 Markdown 文件中替换斜杠/破折号

javascript - Webpack 未构建,因为 CssSyntaxError