NodeJS:如何全局设置Mongoose响应?

时间:2017-02-26 18:00:36

标签: node.js mongodb mongoose

我遇到这种情况需要在路由器之间全局设置mongoose响应(例如动态站点名称)。我试过这个并且它有效,但我认为这不是最好的方法。我可以知道实现它的最佳方法是什么?

我目前的代码:

SomeSchema.findOne({}, function(err, callback) {
    router.get('/', function(req, res, next) {
        res.render('index', {
            title: 'Home'
        });
    });

    router.get('/page1', function(req, res, next) {
        res.render('page1', {
            title: 'Page 1'
        });
    });
});

1 个答案:

答案 0 :(得分:0)

您想要的是使用中间件。能够获得所需价值并将其传递给每个请求的东西。

如果您只需要获取一次值,只需在服务器启动时调用它即可。否则请参阅下面的中间件方法。

route.use(function(req, res, next) {
  //Runs on every request.
  SomeSchema.findOne({}, function(err, callback) {
    req.someValue = callback;
    next();
  });
})

router.get('/', function(req, res, next) {
  console.log(req.someValue); //My value is here
  res.render('index', {
    title: 'Home'
  });
});

router.get('/page1', function(req, res, next) {
console.log(req.someValue); //or here
  res.render('page1', {
    title: 'Page 1'
  });
});