javascript - 创建一个函数并在 node.js 中的另一个文件上调用它
问题描述
我的login.js
页面上有这个检查身份验证功能,在我的routes
文件夹内。我的目录是这样设置的:
routes
login.js
views
index.ejs
login.ejs
app.js
所以我有一个这样的函数app.js
:
app.get('/dashboard', auth, (req, res) => {
...
})
里面的auth
函数login.js
是这样的:
function auth(res, req, next) {
if (req.session.loggedin) {
return next();
} else {
req.session.destory;
res.redirect('/login')
}
}
module.exports = app
这是我在登录页面中要求代码的方式:
var login = require('./routes/login')
app.use(login)
但是,当我需要正确的文件名和所有内容时,它会说无法识别身份验证。这怎么可能?我该如何解决?
解决方案
在login.js
文件中,您编写了module.exports = app
. 相反,您必须编写module.exports = auth
发送 auth 函数。
所以,当你var login = require('./routes/login')
,你auth()
从函数中获取函数login.js
并将函数存储在名称login
中app.js
因此,在引用 in 时app.js
,您的功能是login()
而不是auth()
您以这种方式导入它。
如果你想使用auth
inapp.js
你可以做var auth = require('./routes/login');
否则app.get('dashboard', auth ...
你必须写而不是写app.get('dashboard', login ...
推荐阅读
- r - 如何克服 Schur 补码中的数值问题来更新逆矩阵
- go - 如何处理来自正确用户的消息
- python - Python Pandas Dataframe:根据单独的列取下一个较小的值
- r - BIC() 和 regsubsets() 给了我不同的答案
- javascript - JS addEventListener 无法始终如一地工作
- multicast - JGroups:为傻瓜解释 mcast_addr
- python - 截屏前关闭 covid 广告
- authentication - OWASP ZAP -(身份验证)从响应中提取令牌并将其用于下一个请求
- ruby - 创建一个异步方法,该方法在指定的时间后抛出异常,除非在该函数之外满足某个条件
- c# - 将包含名称的文件从源复制到目标c#