小编Jef*_*eff的帖子

如何调试护照

我似乎一辈子都无法弄清楚如何调试通行证策略。我只是在概念上做错了什么吗?我已经在这个问题上敲了大约 10 个小时,但还没有接近一点。

这是我第一次使用护照。在这种特殊情况下,我使用的是passport-jwt。我知道对象键不正确,但我只是尝试使用 console.log() 跟踪通过服务器的路径,所以我了解事情是如何工作的。我什至没有达到passport.use( new JwtStrategy(..)).

我省略了不必要的代码。与我的 mongodb 的连接很好,我的猫鼬模式也很好。

我正在使用一个测试路由进行测试server.get('/fakelogin', ...),该路由对/api/login. 我也试过使用 acurl -X POST并修改 post 路由到 url 查询参数。我只是不断收到“未经授权”错误,而没有触发护照策略代码 console.log。

服务器

var server = express();
server.use(passport.initialize());

let opts = {
    jwtFromRequest: ExtractJwt.fromBodyField('token'),
    secretOrKey: config.apiKey,
    algorithms: [ 'HS256', 'HS384' ],
    ignoreExpiration: true
};

passport.use(new JwtStrategy(opts, function( jwt_payload, done ) {
    // mongoose users query against JWT content

    return done(null, true); // EDIT: test to finish flow
}));

server.use('/api', routes);
server.listen(8000);
Run Code Online (Sandbox Code Playgroud)

路线 …

authentication node.js express passport.js

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

React .createClass()滚动到ref:scrollIntoView不是函数

当我试图滚动到"参考"时,我无法弄清楚出了什么问题.我一直在疯狂地搜索并找到了完全合理的网址,但它在我的场景中无效.

我有一个使用react 15.4.2以及react-router 3.0.0的应用程序.我有一个路由到一个组件,该组件采用可选的路由参数,并尝试使用它来滚动到componentDidUpdate()上的元素.我尝试了几种不同的方法,但在遵循ref.scrollIntoView()的最新实现时,我收到错误...

scrollIntoView不是一个函数

我确保在componentDidUpdate()时存在"ref回调".

我只是缺少像使用.createClass()这样的东西,你在使用类定义时遇到的方法是缺少的还是我接近这个完全错误的方法?

我可以跳到使用一个包,但是这样的事情是无法理解当我像我一样可以打扰我的时候发生了什么.

代码已经过简化,以便在保持类似流程的同时展示问题.代码语法可能存在差异.

APP

const App = React.createClass({
    render() {
        return (
            <Router history={ appHistory }>
                <Route path='home' component={ Home }>
                    <IndexRoute component={ Page } />
                    <Route path='page(/:itemIndex)' component={ Page } />
                </Route>
                <Route path='add-new-item' component={ AddNewItem } />
            </Router>
        )
    }
});
Run Code Online (Sandbox Code Playgroud)

HOME 只是一个包含导航栏的包装器,可以根据活动索引呈现子项

添加新项目 是一个组件,它将转到/页面/ [新创建的项目的索引]

const Page = React.createClass({
    getInitialState() {
        return {
            data: undefined,
            scrollTo: parseInt(this.props.params.goalIndex) || undefined
        };
    },

    componentWillMount() {
        // this gets data and …
Run Code Online (Sandbox Code Playgroud)

javascript dom reactjs react-router

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

如何在webpack v2中实现全局承诺polyfill?

我想更好地理解在webpack中如何实现promise的区别.通常情况下,由于我主要开发应用程序,幸福的无知已经足够了,但我肯定对如何正确开发插件/工具/库有点困惑.


在创建应用程序时,以下两种方法从未引起任何问题; 我想主要是因为没关系

webpack.config.js - 使用babel-polyfill作为入口点

module.exports = {
  entry: {
    foo: [
      'core-js/fn/promise',          <-- here
      './js/index.js'
    ]
  },

  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'babel-loader'
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

问:在这种方法中,因为它是一个polyfill,它修改了全局Promise?

webpack config - 使用webpacks填充提供插件

module.exports = {
  entry: './js/index.js',

  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'babel-loader'
      }
    ]
  },

  plugins: [
    new webpack.ProvidePlugin({
      Promise: 'es6-promise'          <-- here
    })
  ]
};
Run Code Online (Sandbox Code Playgroud)

问:这是否意味着Promise是一个仅针对webpack捆绑流程的模块?已转换的ES5代码是否具有本地副本或es6-promise?它会修补全球承诺吗?


关于创建一个jquery插件/工具/ lib,它使用babel进行转换...

webpack.config.js - 使用babel-plugin-transform-runtime

module.exports = {
  entry: {
    foo: [
      './js/start.js'
    ] …
Run Code Online (Sandbox Code Playgroud)

javascript polyfills webpack babeljs

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

node.js bot框架Universalbot beginDialogAction的用法?

也许我很傻,但是我真的不明白如何阅读Microsoft bot框架sdknode.js版本。我试图弄清楚如何在ConsoleConnector bot中使用beginDialogAction()endConversationAction()。该文档说它在触发时会注册一个动作,但没有提及如何触发它。我想利用它可以在正常流程之外的调用堆栈中间添加对话框的想法。

抱歉,我无法提供代码,但是我可以提供此代码...

var connector = new builder.ConsoleConnector().listen();
var connector = new builder.ConsoleConnector().listen();
var bot = new builder.UniversalBot(connector);

bot.dialog('/', [
    function( session ) {
        builder.Prompts.text(session, "blah blah blah?");
    },
    function( session, results ) {
        // ...

        session.beginDialog('/foo');
        session.endDialog();
    }
]);

bot.dialog('/foo', [
    function( session, args ) {
        // ...
    },
    function( session, results ) {
        // ...
        session.endDialog();
    }
]);

bot.use({ botbuilder: function( session, next ) {

    // CALL …
Run Code Online (Sandbox Code Playgroud)

javascript chatbot node.js botframework

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