小编Ste*_*ung的帖子

Passport策略中的"完成"回调函数配置"使用"功能

我是node.js和express.js noob.这个问题可能看起来很傻,但我真的很困惑.

我正在尝试使用护照配置Local Strategry身份验证.如官方文档所示,我们可以通过以下代码来计算本地策略,

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function (err, user) {
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.verifyPassword(password)) { return done(null, false); }
      return done(null, user);
    });
  }
));
Run Code Online (Sandbox Code Playgroud)

我的困惑是关于done回调函数.当官方文档显示此局部策略在路由处理程序中用作中间件时,无需为此done回调传递函数参数.

app.post('/login', 
  passport.authenticate('local'),
  function(req, res) {
    res.redirect('/');
  });
Run Code Online (Sandbox Code Playgroud)

那么,done如果我们不提供函数参数,这个回调函数不会为null吗?如果没有,那done回调函数是什么以及在这个done回调函数中会发生什么过程?

javascript callback node.js express passport.js

24
推荐指数
2
解决办法
2万
查看次数

"PHP Composer"与"Ruby Gems and Bundler"相比

(首先,这个问题不是"哪个更好"的问题.我只想知道它们是如何相似的,并且在功能方面有所不同.)

我是php开发人员,目前正在学习ruby.在这些日子里,鼓励许多php开发人员使用Composer依赖管理.在提问之前,我想首先验证我的知识.

根据我的理解,

  • Composer 是一个用于php库(或包)的依赖管理工具.
  • Composer每个项目基础安装php库(所谓的本地).我的意思是为project1安装的php库不能重新用于project2而不再为project2安装.

我注意到Ruby也有非常好的依赖管理工具" RubyGems".据我所知,

  • " RubyGems"是"宝石"的包管理器.
  • " Gem"是以标准格式打包的Ruby程序或库,用于共享.(Rails也是一个宝石.)
  • Gem可以通过这样的命令安装gem install sinatra.
  • 但是,也有所谓的" Bundler",它也是为应用程序捆绑宝石的宝石.
  • 当命令bundle install运行时(在特定的ruby项目目录下),将为此ruby项目安装Gemfile中列出的所有gem.

所以,我的问题在这里.

  1. Composer类似于是否RubyGems还是Bundler
  2. 运行时gem install sinatra,是否在系统级别安装?
  3. 运行时bundle install,是否在本地(仅在此项目上)或系统级别安装Gems?
  4. 如果我需要两个版本的一个gem(例如sinatra)用于不同的项目,我应该如何处理?

(对不起,我的问题很长.如果我的理解有问题,请再次抱歉,请指出正确的.)

php ruby gem bundler composer-php

10
推荐指数
1
解决办法
1639
查看次数

RxJava主题的真实世界用例

有很多很棒的文章解释了RxJava.但几乎没有一个用现实世界的例子来解释这个概念.

所以我基本上理解RxJava Subject的概念就像一个管道而且它是observableobserver.

但我不知道Android开发世界中这个RxJava主题的实际使用情况.你能详细说明一下吗?

android rx-java

10
推荐指数
1
解决办法
1185
查看次数

Firebase Instance Id 和 Token 的范围

我已经阅读了很多关于Firebase Instance Idand registration token hereherehere的文章。

我对他们的一些困惑范围和关系之间Instance IdToken。我想验证我的理解是对还是错。

  1. Instance Id每个App生成。不是每个安装的设备。例如,如果您有 Mail 应用程序和 Notes 应用程序,则firebase上将有两个实例 ID。
  2. Token每个安装的设备生成。例如,如果您有10 个用户安装您的应用程序,您将拥有10 个注册令牌。
  3. 一个Instance Id将有许多注册令牌。
  4. 通常,我们只需要registration tokens在我们的应用服务器上保留(而不是实例 ID)来发送推送通知

android firebase firebase-cloud-messaging

10
推荐指数
1
解决办法
5363
查看次数

如何在Visual Studio中更改程序包管理器控制台的字体大小

我想在Visual Studio中将更大的字体大小更改为PowerShell Package Manager控制台.

但我总是找不到改变它.我已经谷歌了很多但找不到任何有用的东西.

powershell visual-studio

9
推荐指数
1
解决办法
663
查看次数

Flutter 视频播放器质量选择器

我现在正在 Flutter 中开发视频播放器并使用Chewie包,该包也在内部使用 Flutter 的官方video_player

视频将以m3u8格式传输到 Flutter 应用程序。我想让用户像 Youtube 一样选择视频质量720p480p等)。

由于 Flutter 的 video_player 是基于 Android 的 ExoPlayer 的,所以我知道 ExoPlayer 支持用户选择视频质量。

Flutter video_player是否有任何选项、设置或配置可以让用户选择视频质量?

video-streaming flutter

9
推荐指数
1
解决办法
9407
查看次数

Flutter 在构建复杂小部件时显示加载指示器

我是 Flutter 的初学者。

目前在我的应用程序中,我正在开发一个“报告屏幕”,其中包括复杂的小部件,例如Timeseries chart.

我注意到,当我进入“报告屏幕”时,大约需要 3 秒钟才能在应用程序上显示此屏幕。当我尝试从屏幕上删除Timeseries chart小部件时,应用程序响应最佳并立即显示屏幕。

因此,我想将此Timeseries Chart Widget构建过程移至异步,并在构建小部件时显示加载指示器。通过这种方式,我认为屏幕可以立即出现,因为一开始就没有繁重的小部件构建过程。

我已经尝试过以下方法但没有成功。

// Chart Widget Building Method    
Future<Widget> _buildChart(BuildContext context) async {
        return Card(
          elevation: 3.0,
          margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 4.0),
          child: Container(
            child: Column(
              children: <Widget>[
                Padding(
                  padding: EdgeInsets.only(top: 8.0),
                  child: Row(
                    children: <Widget>[
                      _buildPeriodicButton(context, '1D'),
                      _buildPeriodicButton(context, '1W'),
                      _buildPeriodicButton(context, '1M'),
                      _buildPeriodicButton(context, '3M'),
                    ],
                  ),
                ),
                Padding(
                  padding:
                      const EdgeInsets.symmetric(vertical: 16.0, horizontal: 12.0),
                  child: ReportChart(data: _chartData),
                ),
              ],
            ),
          ),
        ); …
Run Code Online (Sandbox Code Playgroud)

flutter

7
推荐指数
1
解决办法
850
查看次数

Python:从具有字符限制的列表中生成所有可能的序列组合

我的问题与这个问题完全相同.我有字符的数组(列表).我想从该列表中获取所有可能的序列组合,但具有字符限制(例如:最多2个字符).此外,在排列行中不能重复单个字符:

chars = ['a', 'b', 'c', 'd']

# output
output = [['a', 'b', 'c', 'd'],
          ['ab', 'c', 'd'],
          ['a', 'bc', 'd'],
          ['a', 'b', 'cd'],
          ['ab', 'cd'],
          ['abc', 'd'], # this one will be exempted
          ['a', 'bcd'],  # this one will be exempted
          ['abcd']]  # this one will be exempted
Run Code Online (Sandbox Code Playgroud)

我知道我可以在生成和构建序列时检查条件以省略超限字符组合.但它会增加运行时间.我的目的是减少现有的执行时间.

没有字符数限制,组合将生成为2 ^(N-1).如果列表超过15个字符,则执行程序将花费很长时间.因此,我想减少字符数限制的组合数.

优先级是性能.我已经研究并试了两天没有任何成功.

python combinations permutation

5
推荐指数
1
解决办法
160
查看次数

Vue.js-如何将非反应性数据传递给子组件

我知道我们可以通过Props将数据传递给子组件。但是它在单向数据流模式下是反应性的。如果在“ 父级”组件中更改了数据的值,则props在“ 子级”组件中也会影响(更新)。

就我而言,即使父组件中的数据已更改,我也不想在子组件中的特定道具上获得更新。这是因为Child组件仅负责显示数据。但是父级组件中的数据在父级范围中仍然必须是反应性的

我读过一些论坛文章,建议像Json一样使用。我觉得这是一种肮脏的方式,在我的情况下,数据只是其中一种string

反正有实现这种解决方案的方法吗?

vue.js vue-component vuejs2

4
推荐指数
1
解决办法
1003
查看次数

如何在ViewModel属性中包装Model属性

我没有直接将整个Model暴露给View,而是希望拥有ViewModel属性,它们只是每个Model属性的代理.例如;

private Product _product;

public string ProductName
{
     get { return _product.ProductName; }
     set
     {
          SetProperty(ref _product.ProductName, value);
     }
}
Run Code Online (Sandbox Code Playgroud)

但上面的例子会导致错误A property, indexer or dynamic member access may not be passed as an out or ref parameter.

我该如何解决这个问题?

PS我的模型不是由INPC接口实现的.它们只是简单的POCO类.

c# wpf prism mvvm

2
推荐指数
1
解决办法
3184
查看次数

Java 8可选如何定义NullPointerException的错误消息

在Java 8之前,我们通常必须执行以下操作才能快速执行Null值.

Objects.requireNonNull(pointer, "Your Error Message");
Run Code Online (Sandbox Code Playgroud)

根据Java 8 Documentation,如果传递的参数为null ,Optional.of则抛出NullPointerException.

// Optional.of - throws NullPointerException if passed parameter is null
Optional<Integer> b = Optional.of(value2);
Run Code Online (Sandbox Code Playgroud)

有没有什么办法来定义错误消息NullPointerException在Java中8 Optional

java nullpointerexception optional java-8

2
推荐指数
2
解决办法
800
查看次数

抽象基类的ClassName <Type>或ClassName <Object>

我是C#编程的新手.我想创建包含一些和方法的抽象基类.abstractvirtual

通过以下两个例子,它们的使用差异和更常用的是什么?

例1,使用Type关键字.

public abstract class DecoratorBase<Type> : ValidatableBindableBase
{
    public virtual void SetFields(Type T) { }
    public virtual void SetFieldsBack(ref Type T) { }
}
Run Code Online (Sandbox Code Playgroud)

例2,使用Object关键字.

public abstract class DecoratorBase<Object> : ValidatableBindableBase
{
    public virtual void SetFields(Object T) { }
    public virtual void SetFieldsBack(ref Object T) { }
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,TypeObject将代表我的商业模式POCO类.

对不起,如果这个问题听起来很天真.谢谢.

c# abstract-class

0
推荐指数
1
解决办法
100
查看次数