SailsJS如何在项目的根级别指定文件路径

时间:2015-09-12 16:20:18

标签: node.js sails.js

我有一个SailsJS应用程序,我需要在其中引用位于项目根目录的htpasswd文件:

undefined

我尝试过使用:

var auth = require('http-auth');

var basic = auth.basic({
    authRealm: "Admin Panel",
    authFile: 'htpasswd', // <-- how do I specify the path to this file ?
    authType: 'basic'
});

module.exports = function(req, res, next) {
    basic.apply(req, res, function(username) {
        if(!username) {
            return res.serverError(403, 'You are not authorized');
        }

        next();
    })(req, res);
}

以及:

authFile: '/htpasswd'

都没有效果。

更新

Hurmm ....似乎不是代码有错误,不知怎的,我的Sailsjs应用程序无法找到htpasswd模块。

我做了:

authFile: '~/htpasswd'

我还使用htpasswd命令行生成sudo npm install -g htpasswd 文件...我的项目设置错误...

我的控制台错误说:

htpasswd

1 个答案:

答案 0 :(得分:2)

使用本地__dirname变量来计算当前文件的路径。

查看使用console.log(__dirname)的内容。然后你可以这样做:

var basic = auth.basic({
    realm: "Admin Panel",
    file: __dirname + "/path_from_current_file_to/htpasswd"
});

因此,如果root是该脚本所在的文件夹中的文件夹,则可以执行

__dirname + "/../htpasswd"