Node.js SailsJS如何在项目的根级别指定文件路径
我得到了一个SailsJS应用程序,其中我需要引用位于项目根目录下的htpasswd文件:Node.js SailsJS如何在项目的根级别指定文件路径,node.js,sails.js,Node.js,Sails.js,我得到了一个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.expo
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'
两者都不起作用
更新
嗯……似乎不是代码有错误,不知怎的,我的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)
错误:找不到模块“htpasswd”
在Function.Module.\u解析文件名(Module.js:336:15)
在Function.Module.\u加载(Module.js:278:25)
at Module.require(Module.js:365:17)
根据需要(module.js:384:17)
反对。(/Users/MacUser/saisprojects/SecurePanel/node_modules/http auth/gensrc/auth/basic.js:11:14)
使用本机\uuu dirname
变量,该变量的计算结果为当前文件的路径
查看它在使用什么console.log(\uu dirname)
。然后你可以做:
var basic = auth.basic({
realm: "Admin Panel",
file: __dirname + "/path_from_current_file_to/htpasswd"
});
因此,如果根目录是此脚本所在文件夹的上一个文件夹,则可以执行以下操作:
\uu dirname+“/../htpasswd”
是否无法快速跳转到Nodejs中文件夹的根目录?似乎很奇怪,必须键入。/../../../../../../../../../../../../../../code>你知道我的意思吗DBy文件夹的根,是指文件系统吗?还是项目?因为我以为你指的是后者?不,除非你存储对根的引用,否则Node.js无法确定根项目文件夹是什么。您应该将其存储在环境变量或其他东西中,然后访问它。更好的是,配置文件。我指的是项目根,而不是Mac的文件系统。也许我应该用Passport的基本身份来代替。
var basic = auth.basic({
realm: "Admin Panel",
file: __dirname + "/path_from_current_file_to/htpasswd"
});