停止从外部文件调用执行代码

stop code execution from external file call

本文关键字:执行 代码 调用 文件 从外部      更新时间:2023-09-26

下面是一个nodejs设置。如果user不在admin组中,目的是防止部分代码执行:

在file1.js中:

export function adminAuthRequired( req, res) {
if ( req.session.user_group !== "admin") {
    const message = "You are not  authorized to access this content."
    boundaries.redirectToPage( res, message, "redirect-default-page.ejs")
}

}

这是file2.js调用file1.js中的函数:

public destroy( slug ) {
    utils.adminAuthRequired( this.req, this.res) // Here we include file1 function
    // Code needs to stop execution here if user is not admin
    // Query db for user details
    db.deleteSingleRecord( this.res, "links", `WHERE link_slug = ${slug}`, callback )
    // ... rest of code....
}

在file2中调用adminAuthRequired后是否有停止代码执行的方法?

我可以简单地做一个if语句在file2上从文件1返回的bool,但我想知道是否有一种方法来嵌入它在file1?

您可以使用回调方法…

export function adminAuthRequired( req, res, cb) {
    if ( req.session.user_group !== "admin") {
        const message = "You are not  authorized to access this content."
        boundaries.redirectToPage( res, message, "redirect-default-page.ejs")
    } else cb();
}
然后调用like ->
public destroy( slug ) {
   utils.adminAuthRequired( this.req, this.res, function() {
      db.deleteSingleRecord( this.res, "links", `WHERE link_slug = ${slug}`, callback );
      // ... rest of code....
   });
}