[英]how to export function and use it as middleware node.js
在我的middleware
文件夾中,我有一個名為auth.js
的文件。
在這個文件中,我有這個 function:
function authCheck () {
if (req.session.loggedin) {
return;
} else {
req.session.destory();
res.redirect('/login')
}
}
我需要導出它,然后在我的其他文件中使用它,所以我需要將它導入到我的根目錄app.js
文件和我的routes
文件夾中,那里的那些js
文件。
我基本上想這樣做:
app.get('/index', authCheck, (req, res) => {
.....
}
我該怎么做呢?
您使用app.use
假設您正在使用 expressjs 並使用next()
繼續執行
auth.js
function authCheck (req, res, next) {
if (req.session.loggedin) {
next();
} else {
req.session.destory();
res.redirect('/login')
}
}
module.exports = { authCheck }
應用程序.js
const {authCheck} = require('./auth.js');
app.use(authCheck)
app.get('/index', (req, res) => {
.....
}
節點模塊是您正在尋找的。
這是 nodejs 文檔中的一個示例。
從 addTwo.mjs 導出addTwo.mjs
// addTwo.mjs
function addTwo(num) {
return num + 2;
}
export { addTwo };
在app.mjs中導入並使用導出的app.mjs
// app.mjs
import { addTwo } from './addTwo.mjs';
// Prints: 6
console.log(addTwo(4));
請注意,文件擴展名.mjs
用於指定您正在使用 es6 模塊。 在這里閱讀更多。
您可以在其中創建一個類似 auth.js 文件的中間件,並在其中添加身份驗證代碼,如下所示:
module.exports = {
authCheck: (req, res, next) => {
}
}
並將該文件導入您的路由文件夾並使用它,如下所示:
const auth = require('../middlewares/auth')
router.post("/", auth.authCheck, (req, res, next) => {
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.