难道element.width()不工作了还是我错以为它给你宽度的元素?
angular.module('app', []).directive('app', function() {
return {
restrict: 'E',
link: function(scope, element) {
console.log(element.width());
// => Error: element.width is not a function
},
};
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<app></app>
</div>Run Code Online (Sandbox Code Playgroud)
我在node.js express中实现护照有问题.
我试图遵循不同的指南,但不会成功..
这次是这样的错误:
我的代码看起来像这样:
在app.js中:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');
// TODO - Why Do we need this key ?
app.use(expressSession({secret: 'mySecretKey'}));
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)
知道为什么它不会工作吗?我已经安装了快递,护照,护照本地等.
我已经使用Picturefill在我的网页上加载了几张图片.它们在Chrome中正确显示,但在Internet Explorer 8中根本不显示.
以下是我的代码示例:
<link href="styles.css" rel="stylesheet" type="text/css">
<script src="js/modernizr.custom.11641.js"></script>
<script async="true" src="js/picturefill.js"></script>
<script src="js/respond.js"></script>
</head>
<body>
<div class="wrapper">
<header class="x-padding inside-b-padding">
<h1 class="nocontent outline">Baseball for Busy
People</h1>
<picture class="logo">
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="images/logo.png" media="(min-width: 750px)">
<!--[if IE 9]></video><![endif]-->
<img srcset="images/logo-small.png" alt="Baseball for Busy People">
</picture>
Run Code Online (Sandbox Code Playgroud)
(我包括顶部,以防我的文件链接是问题的一部分).
我可以在IE 8中查看演示:http://scottjehl.github.io/picturefill/examples/demo-02.html.但是我页面上的图像不起作用.
这是我尝试过的:
<picture>元素(虽然我使用的是Modernizr,所以不需要它).我添加了一个src路径到img标签,这有用,但我读到Picturefill不推荐这个.
当触发其onchange事件时,类型复选框的输入this.value始终设置为on即使勾选了复选框,在这种情况下我希望它是off
这是预期的行为吗?
<input type="checkbox" onchange="alert(this.value)">Run Code Online (Sandbox Code Playgroud)
有没有办法在运行mongoose查询时填充所有字段,以防您事先不知道哪些字段是引用的文档?像这样的东西:
schema = new Schema({ ref: {type:ObjectId, ref:'ref'}});
db = Model('data', schema);
db.find({}).populate('*').
// or
db.find({}).populate({path:'*'}).
//=> {ref: {_id:...,}} // "ref" is populated automatically
Run Code Online (Sandbox Code Playgroud) 我正在构建一个有趣的小便笺应用程序,有时这会发生:

(这是因为第一个单词比笔记的宽度宽.)
有没有办法检查滚动条是否与Javascript一起出现?如果我可以这样做,我可以调整音符大小,直到它包含没有滚动条的文本.
我在我的网站中使用了几种Passport身份验证策略,效果很好,但是,我需要一个Demo或(我们可以调用session)策略,它会根据它的会话ID自动授权用户,现在我手动执行,当用户导航时在/demo页面上,我使用会话ID在db(mongodb)上运行查询,如果用户存在,我使用该用户呈现页面,如果不是,我创建一个.
app.get('/demo', function(req,res) {
db.User.findOne({ 'accounts.kind': 'demo', 'accounts.sid': req.sessionID }, function(err, user) {
if (user) {
res.render( 'home', {
user: user
});
} else {
var user = new db.User();
user.accounts.push({
kind: 'demo',
sid: req.sessionID,
created: Date.now
});
req.session.userId = user._id;
user.save(function(err) {
if(err) { throw err; }
res.render( 'home', {
user: user
});
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
用户架构如下所示:
UserSchema = new Schema({
uname: {type: String},
accounts: [],
docs:[{type:Schema.Types.ObjectId, ref:'Doc'}]
})
Run Code Online (Sandbox Code Playgroud)
它工作,但我需要设置一个会话变量,因为这个方法不会登录用户,我的意思是req.user请求中没有,但是使用该会话变量我可以检查用户是否是演示用户. …
我正在使用NodeJS,Express和PassportJS来构建Web应用程序.我遇到了一条我无法理解的路线问题.当我有:
...
app.get('/auth/facebook', passport.authenticate('facebook'));
...
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好.但当我改变为:
...
app.get('/auth/facebook',
function(req, res) {
passport.authenticate('facebook');
});
...
Run Code Online (Sandbox Code Playgroud)
它挂了吗?我在app.get函数上遗漏了什么吗?我希望能够这样做,因为我想让路径更加动态,我确定了护照的身份验证.例如:
...
app.get('/auth/:provider',
function(req, res) {
passport.authenticate(req.params.provider);
});
...
Run Code Online (Sandbox Code Playgroud)
凡提供者可能是facebook,twitter或google...
我正在使用nodejs和express创建API.我需要提供本地用户名/密码验证.我可能需要在将来提供额外的身份验证,所以我使用passportjs,因为它似乎是最灵活/可插拔的.
API将由Web应用程序和移动应用程序使用.而不是必须通过每个api请求传递用户名/密码,我想我可以让用户登录并为客户端提供令牌.客户端可以存储令牌并在每个api请求上提供令牌.
我已经看过使用JWT令牌,即http://coderead.wordpress.com/2012/08/16/securing-node-js-restful-services-with-jwt-tokens/.但是,我不确定如何使用JWT创建安全令牌.我已经读过在令牌中使用用户名是个坏主意.有没有人在节点中使用JWT来创建令牌.有一个例子吗?
我可以看一下节点的任何其他模块来生成令牌.
我相信我已经正确配置了一切:
app.configure(function() {
app.use(express.cookieParser('secret message')); // secret it set here in new version of express or connect
app.use(express.bodyParser());
app.use(express.session());
app.use(passport.initialize());
app.use(passport.session());
});
Run Code Online (Sandbox Code Playgroud)
当使用正确的凭据请求"登录" 时:
app.post('/api/login', passport.authenticate('local'), function (req, res, next) {
console.log(req.session.passport); // {"user":"5259f2739d4323000a000003"}
});
Run Code Online (Sandbox Code Playgroud)
req.session.passport 填充:
"passport": {"user":"5259f2739d4323000a000003"}
Run Code Online (Sandbox Code Playgroud)
但是,当打电话给:
app.post('/api/checklogin', function (req, res, next) {
console.log(req.session.passport); // {}
})
Run Code Online (Sandbox Code Playgroud)
req.session.passport 丢了:
"passport":{}
Run Code Online (Sandbox Code Playgroud)
两次,req.session看起来像这样:
{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"passport":{}}
Run Code Online (Sandbox Code Playgroud)
**如上所述,护照对象明显不同
我假设我已serializeUser正确配置,因为它正确设置了此属性.
我不完全确定Passport如何创建会话cookie,以及这些cookie如何持久化.
我假设req.session.passport应该保留用户属性,但看起来Passport对象:
我担心我可能会忽视一些大事 - 可能是我可能需要做的事情,Passport不能直接为我处理.
我不知道有任何方法可以测试会话是否由Passport创建.
任何建议或帮助都非常感谢.这是一个多天的斗争.
node.js ×6
passport.js ×5
express ×3
css ×2
html ×2
javascript ×2
angularjs ×1
checkbox ×1
mongodb ×1
mongoose ×1
overflow ×1
picturefill ×1
routes ×1
scrollbar ×1
width ×1