如何在函数中的node.js中返回导入的模块?

时间:2017-03-25 04:20:41

标签: javascript node.js function authentication

我正在创建一个node.js单页应用。如果用户通过身份验证,我想在主页中显示特定视图。为此,我创建了一个函数来检查用户是否是auth。它工作正常。

但是,当我想要返回特定视图时,我遇到了一些问题。

我尝试了一些不同的方法,但我无法返回任何视图。

视图

const notAuth = require('../view1')
const isAuth = require('../view2')

这是我的第一次尝试:

const home = function (ctx) {
  if (ctx.auth) {
    return isAuth
  } else {
    return notAuth
  }
}
module.exports = home

然后,我尝试仅使用module.exports

module.exports = function home (ctx, next) {
  if (ctx.auth) {
    return isAuth
  } else {
    return notAuth
  }
  next()
}

最后,我尝试了这个:

const authenticated = function (ctx) {
  if (ctx.auth) {
    return isAuth
  } else {
    return notAuth
  }
}

module.exports = function home (ctx, next) {
  return authenticated(ctx)
  next()
}

注意:

如果我使用的话,我在特定视图中使用的每个模块都可以正常工作:

module.exports = notAuth

如何在函数中返回特定的导入模块?

1 个答案:

答案 0 :(得分:2)

也许您需要将上下文实际传递到目标路径

const home = function (ctx, next) {
  if (ctx.auth) {
    return isAuth(ctx, next)
  } else {
    return notAuth(ctx, next)
  }
}