- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在学习mean.io来自 this tutorial video ,它显示了示例包(由 mean package mymodule
创建。它也在 docs 的“包”下进行了描述)。我想帮助了解给定的身份验证/授权如何工作。
默认示例包/模块在客户端有一个简单的用户身份验证
myapp/packages/mymodule/public/views/index.html 包含:
<li>
<a href="mymodule/example/anyone">Server route that anyone can access</a>
</li>
<li>
<a href="mymodule/example/auth">Server route that requires authentication</a>
</li>
<li>
<a href="mymodule/example/admin">Server route that requires admin user</a>
</li>
// The Package is past automatically as first parameter
module.exports = function(Mymodule, app, auth, database) {
app.get('/mymodule/example/anyone', function(req, res, next) {
res.send('Anyone can access this');
});
app.get('/mymodule/example/auth', auth.requiresLogin, function(req, res, next) {
res.send('Only authenticated users can access this');
});
app.get('/mymodule/example/admin', auth.requiresAdmin, function(req, res, next) {
res.send('Only users with Admin role can access this');
});
...
};
app.get()
的第二个参数与
additional authentication callback :无,
auth.requiresLogin
, 或
auth.requiresAdmin
.
/**
* Generic require login routing middleware
*/
exports.requiresLogin = function(req, res, next) {
if (!req.isAuthenticated()) {
return res.send(401, 'User is not authorized');
}
next();
};
/**
* Generic require Admin routing middleware
* Basic Role checking - future release with full permission system
*/
exports.requiresAdmin = function(req, res, next) {
if (!req.isAuthenticated() || !req.user.hasRole('admin')) {
return res.send(401, 'User is not authorized');
}
next();
};
exports
有关:
module.exports = function(passport) { ...}
,
github ?如果是这样,我们在什么情况下可以使用这种“导出”?
Access
包注册于
var mean = require('meanio'),
Module = mean.Module,
passport = require('passport');
var Access = new Module('access');
Access.register(function(database) {
// Register auth dependency
var auth = require('./server/config/authorization');
require('./server/config/passport')(passport);
// This is for backwards compatibility
mean.register('auth', function() {
return auth;
});
mean.register('passport', function() {
return passport;
});
Access.passport = passport;
Access.middleware = auth;
return Access;
});
var auth = require('./server/config/authorization');
// This is for backwards compatibility
mean.register('auth', function() {
return auth;
});
最佳答案
关于问题 A(关于 exports
的使用)
在 Node.js 中,为 exports
赋值对象使那些值可用于 require
的代码。 s 源文件。
例如,给定文件 foo.js
:
exports.foo = "FOO";
exports.bar = "BAR";
main.js
:
var foo = require('foo.js');
console.log('foo=',foo.foo,'; bar=',foo.bar);
node main.js
将输出
foo= FOO ; bar= BAR
.
require
and exports
.
require
陈述。
app.js
源代码,第一行(阅读
var mean = require('meanio')
)将设置局部变量
mean
分配给
exports
的任何值对象是
meanio.js
和/或
meanio
模块已加载。
passport = require('passport')
相同.在这种情况下,局部变量
passport
将等于
exports
的值在
index.js in the passport module 之后已加载。
var mean = require('meanio')
在第 1 行“导入”meanio 模块,使得局部变量
mean
或多或少等于
exports
的值在 meanio 模块中。
Module = mean.Module
在第 2 行设置局部变量
Module
等于
mean.Module
的值,必须在 meanio 模块中分配。
var Access = new Module('access')
正在实例化
Module
的实例类,将其分配给局部变量
Access
.
Access.passport = passport
分配名为
passport
的实例变量在
meanio.Module
的实例中命名为
Access
(到第 3 行的
passport
模块
require
d 的值)
Access.middleware = auth
分配名为
middleward
的实例变量在
meanio.Module
的实例中命名为
Access
(到第 11 行
require('./server/config/authorization')
返回的值)。
meanio.Module("access")
实例(名为
Access
)通过分配特定的“魔术”变量名称。
Access.passport = passport; Access.middleware = auth
你可能有
Access.setPassport(passport); Access.setMiddleware(auth)
或(而不是第 5 行)
var Access = new Module('access',passport,auth)
.
this.middleware
之类的引用。和
this.passport
,其中代码假设您已经“填充”了这些实例变量,就像代码示例的最后几行中发生的那样。
Access.auth = auth
那么将会发生的只是
Access
对象将有一个名为
auth
的新属性其值等于局部变量
auth
的值.
Access.auth
而不是
Access.middleware
, 我假设
Access
中的任何代码使用
this.middleware
的类将失败,因为从未为
Access.middleware
分配任何值和
Access.auth
不是 meanio 正在寻找的“神奇”变量名称之一。
关于node.js - 向 Mean.io 初学者解释 Mean.io 示例包的身份验证如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356973/
入门教程使用内置的梯度下降优化器非常有意义。但是,k均值不仅可以插入梯度下降中。似乎我不得不编写自己的优化程序,但是鉴于TensorFlow原语,我不确定如何执行此操作。 我应该采取什么方法? 最佳答
我想知道 K-Mean 和 K-Means++ 算法之间的区别。如果有人了解 K-Means++ 算法的流程,您能举例说明一下吗?虽然,我了解 K-Mean 算法,但发现如何实现 K-Means++
我有不同的数据帧均值计算值。通常,我想它们应该是一样的。或者有什么区别: daily1 = daily_above_zero['2011-2'].mean() daily1 Out[181]: P_S
我有关于人们每周上类旅行次数的数据。随着行程的距离,我对两个变量之间的关系感兴趣。 (预计频率会随着距离的增加而下降,本质上是一种负相关。)Cor.test 支持这个假设:-0.08993444,p
我了解 k-means 算法步骤。 但是我不确定该算法是否会始终收敛?或者观察总是可以从一个质心切换到另一个质心? 最佳答案 该算法总是收敛(按定义)但 不一定是全局最优 . 算法可能会从质心切换到质
(添加了可重现的示例。) 我对 rnorm 函数有点困惑。 我期待 mean(rnorm(100,mean=0,sd=1))为0;和 sd(rnorm(100,mean=0,sd=1))为 1。但给出
我想计算一个平均值。这是带有示例数据的代码: # sample data Nr <- c(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
我有一个像这样的数据框: Id F M R 7 1 286 907 12 1 286 907 17 1 186 1271 21 1 296 905 30 1
如果我们将 K-means 和顺序 K-means 方法应用于具有相同初始设置的相同数据集,我们会得到相同的结果吗?解释你的理由。 个人认为答案是否定的,顺序K-means得到的结果取决于数据点的呈现
我想使用 MEAN JavaScript 堆栈,但我注意到有两个不同的堆栈,它们有自己的网站和安装方法:mean.js 和 mean.io。所以我开始问自己这个问题:“我用哪一个?”。 所以为了回答这
似乎有多种方法可以安装 Mean Stack (mean.io) 的所有模块。但是,在 c9.io 中执行此操作的最佳方法是什么?我一直在尝试很多事情,但我似乎并没有全部掌握。 c9.io 有专门的
在开发过程中,我希望加载原始(未聚合).js 文件。 Mean.io 文档说: All javascript within public is automatically aggregated wit
我正在尝试添加 angular-material到 mean.io应用。 在我的自定义包中,我使用 bower 来安装 angular-material,现在我有一个 .../public/asset
我只运行以下三行: df = pd.read_hdf('data.h5') print(df.mean()) print(df['derived_3'].mean()) 第一个 print 列出了每一
k-means++算法有助于原始k-means算法的以下两点: 原始的 k-means 算法在输入大小的 super 多项式的最坏情况下运行时间,而 k-means++ 声称是 O(log k)。 与
这两个字段有什么区别? : 每个请求的时间(平均) 每个请求的时间(平均,跨所有并发请求) 它们每个是如何计算的? 示例输出: Time per request: 3953.446 [ms
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 7年前关闭。 Improve this qu
我想看看是否可以根据它们所处理的目标函数来比较两者的性能? 最佳答案 顺便说一句,Fuzzy-C-Means (FCM) 聚类算法也称为Soft K-Means。 目标函数实际上是相同的,唯一的区别是
虽然我看到了很多与此相关的问题,但我并没有真正得到答案,可能是因为我是使用 nltk 集群的新手。我确实需要对聚类新手进行基本解释,特别是关于 NLTK K 均值聚类的向量表示以及如何使用它。我有一个
我在学习mean.io来自 this tutorial video ,它显示了示例包(由 mean package mymodule 创建。它也在 docs 的“包”下进行了描述)。我想帮助了解给定的
我是一名优秀的程序员,十分优秀!