gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:56 24 4
gpt4 key购买 nike

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

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'

以及:

authFile: '~/htpasswd'

两者都不起作用。

更新

嗯……看来不是代码有错误,不知何故,我的 Sailsjs 应用程序找不到 htpasswd 模块。

我确实做了:

sudo npm install -g htpasswd

我还使用 htpasswd 命令行生成 htpasswd 文件...我的项目设置出现问题...

我的控制台错误显示:

Error: Cannot find module 'htpasswd'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/MacUser/SailsProjects/SecurePanel/node_modules/http-auth/gensrc/auth/basic.js:11:14)

最佳答案

使用 native __dirname 变量,其计算结果为当前文件的路径。

使用console.log(__dirname)查看它正在做什么。然后你可以这样做:

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

因此,如果根目录是该脚本所在文件夹之上的文件夹,您可以这样做

__dirname + "/../htpasswd"

关于node.js - SailsJS如何在项目的根级别指定文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32541016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com