小编Srl*_*rle的帖子

JavaScript模块模式与示例

我找不到任何可访问的示例,显示两个(或更多)不同模块如何连接在一起工作.

所以,我想问一下是否有人有时间编写一个解释模块如何协同工作的例子.

javascript module

136
推荐指数
4
解决办法
10万
查看次数

Ember在控制器和路线中定义动作

从官方指南:

如果控制器未实现与其操作对象中的操作同名的方法,则该操作将被发送到路由器,其中当前活动的叶路由将有机会处理该操作.

那么在控制器中定义动作方法和在路径中定义动作方法的优缺点是什么?我可以看到指南没有谈到这一点.在防止动作冒泡的意义上,在控制器中定义可以"更快".

ember.js

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

jsdoc文件socket.on('event',function(){})和路由处理程序的正确方法

如何使用具有以下形式的jsdoc来记录API(单个文件)

// api.js

exports.addSocketEvents = function(socket) {
   /**
    * This will do that and ...
    * @param {Object} data Some data
    * @param {string} data.bla Something about bla
    * @param {number} data.n Some number
    */
   socket.on('something_1', function(data) { ... });

   /**
    * Another function that will do ..
    * @param {string} id of something
    */
   socket.on('something_2', function(id) { ... });

   ...
};

exports.addRoutes = function(app) {
    /**
     * PATCH /something/:id/juhu
     * Will do this and that and will respond with …
Run Code Online (Sandbox Code Playgroud)

javascript comments node.js jsdoc jsdoc3

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

socket.io身份验证与共享会话数据,io.use()如何工作

灵感来自如何与Socket.IO 1.x和Express 4.x共享会话?我以一些"干净"的方式实现套接字身份验证,不需要使用cookie-parser并从头文件中读取cookie,但很少有项目对我来说不清楚.示例使用last stable socket.io 1.3.6版.

var express      = require('express'),
    session      = require('express-session'),
    RedisStore   = require('connect-redis')(session),
    sessionStore = new RedisStore(),
    io           = require('socket.io').listen(server);

var sessionMiddleware = session({
    store   : sessionStore,
    secret  : "blabla",
    cookie  : { ... }
});

function socketAuthentication(socket, next) {
  var sessionID = socket.request.sessionID;

  sessionStore.get(sessionID, function(err, session) {
      if(err) { return next(err); }

      if(typeof session === "undefined") {
          return next( new Error('Session cannot be found') );
      }
      console.log('Socket authenticated successfully');
      next();
  });
}

io.of('/abc').use(socketAuthentication).on('connection', function(socket) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express socket.io express-session

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

节点证书存储,节点是否只读取硬编码的证书列表?

经过一段时间的努力,有没有办法将新证书添加到证书节点信任列表中?

似乎节点信任存储在硬编码证书列表中的证书:https://github.com/nodejs/node/blob/master/src/node_root_certs.h

因此,例如,节点应用程序应与https://foo-bar-baz.com该使用自签名证书进行通信,从而导致对该域的请求返回如下内容:
[RequestError: Error: certificate has expired]

显然,如何在java中修复此问题是将https://foo-bar-baz.com证书添加到$JAVA_HOME/lib/security/cacerts.

节点是否从提到的硬编码列表中读取证书?或者它也可以从一些OS证书商店读取?如果只是来自硬编码列表:

  1. 为什么?以这种方式实施它的原因是什么?
  2. 如果某些证书被伪造,那么只能等待下一个节点版本?
  3. 如果想要添加自签名证书,不可能?

(可以编辑可能的硬编码列表来添加/删除证书,但我对改变节点源感到不舒服,同样来自类似的问题节点的证书存储在哪里?可以在做请求时添加证书但它不在范围内这个问题.类似的问题是在2年前发布的,从我调查的情况来看今天是一样的)

javascript ssl https node.js

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

node express,如何在注销后清除cookie

基本上我正在从a.example.com重定向到www.example.com,我希望能够在www.example.com上删除cookie(因为cookie是以.example.com作为cookie域创建的),但是以下代码不起作用.

我知道这个问题似乎是重复的问题,我尝试了类似问题的一切,但它不起作用.看看我已经尝试过的代码.

使用express 3.0.3和node 0.10.32.

快速会话中间件

...
var cookiedata = { 
    domain              : '.example.com',
    originalMaxAge      : null,
    httpOnly            : false
};

app.use(express.session({
        store  : ..., 
        secret : ..., 
        key    : 'express.sid', 
        cookie : cookiedata 
}));
...
Run Code Online (Sandbox Code Playgroud)

注销功能

function logout(req, res){
    ...

    req.session.destroy(function(){
        req.session = null;

        res.clearCookie('express.sid', { path: '/' });
        res.redirect('https://www.example.com');

    });
}
Run Code Online (Sandbox Code Playgroud)

我从类似问题中尝试过的

  1. https://github.com/strongloop/express/issues/691

所以我把path : '/'快递会话中间件放在如下:

app.use(express.session({ ..., path : '/' });
Run Code Online (Sandbox Code Playgroud)

没有成功.

  1. https://groups.google.com/forum/#!topic/express-js/PmgGMNOzhgM
    我用过res.clearCookie:res.cookie('express.sid','',{expires:new Date(1),路径:'/'});

没有成功.

javascript cookies node.js express express-session

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

Angular 2.1.0动态创建子组件

我正在尝试做的angular 2.1.0是动态创建应该注入父组件的子组件.例如父组件是lessonDetails包含用于所有课程如像按钮共享的东西Go to previous lesson,Go to next lesson和其他东西.基于路径参数,应该是子组件的课程内容需要动态注入父组件.子组件的HTML(课程内容)在外面的某处定义为普通字符串,它可以是以下对象:

export const LESSONS = {
  "lesson-1": `<p> lesson 1 </p>`,
  "lesson-2": `<p> lesson 2 </p>`
}
Run Code Online (Sandbox Code Playgroud)

通过innerHtml父组件模板中使用类似的内容,可以轻松解决问题.

<div [innerHTML]="lessonContent"></div>
Run Code Online (Sandbox Code Playgroud)

在路径参数的每次更改的情况下lessonContent,父组件的属性将改变(将从LESSON对象获取内容(新模板)),从而导致更新父组件模板.这有效,但角度不会处理通过注入的内容,innerHtml因此无法使用routerLink和其他东西.

在新的角度释放之前,我使用来自http://blog.lacolaco.net/post/dynamic-component-creation-in-angular-2/的解决方案解决了这个问题,我一直在使用ComponentMetadataComponentResolver来动态创建子组件, 喜欢:

const metadata = new ComponentMetadata({
  template: this.templateString,
});
Run Code Online (Sandbox Code Playgroud)

templateString传递给子组件的Input属性为子组件.双方MetaDataComponentResolver已被弃用/去掉angular 2.1.0. …

javascript angular

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

节点进程内存使用量,驻留集大小不断增加

退出node.js process.memoryUsage()的返回值是什么?RSS是驻留集大小,进程内存中保存在RAM中的部分(通过此过程在字节中保存在RAM中的内存量)示例中使用的'text.txt'文件大小为370KB(378880字节)

var http    = require('http');
var fs      = require('fs');
var express = require('express');
var app     = express();

console.log("On app bootstrap = ", process.memoryUsage());

app.get('/test', function(req, res) {

    fs.readFile(__dirname + '/text.txt', function(err, file) {
        console.log("When File is available = ", process.memoryUsage());
        res.end(file);

    });

    setTimeout(function() {
        console.log("After sending = ", process.memoryUsage());
    }, 5000);

});

app.listen(8081);
Run Code Online (Sandbox Code Playgroud)

所以在应用程序bootstrap上:{ rss: 22069248, heapTotal: 15551232, heapUsed: 9169152 } 在我提出10个'/ test'请求后,情况是:

When File is available =  { rss: 33087488, heapTotal: 18635008, heapUsed: 6553552 } …
Run Code Online (Sandbox Code Playgroud)

node.js

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

array [n]和array []之间的区别?

例如,之间有什么区别吗?

int array[]={1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

和,

int array[5]={1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

编译器需要由自对第一种情况下,计算元件的数量,并且,可以采取一个一定的时间({...}的1234332534种元素),所以第二种情况是有效的比第一?

c c++ arrays

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

加载模块一次,需要带有示例

我已经问了类似的问题:Requirejs,它意味着什么"Requirejs加载每个模块一次"
但在那个主题中没有人回答主要问题,因为我问错了.

所以我将提供一些简单的例子来展示我的意思:

模块counter.js

1:    define([], function() {
2:        console.log("Executing counter");
3:        var counter = 0;
4:   
5:        return {
6:            increment: function() { counter++; },
7:            get: function() { return counter; }
8:        };
9:    });
Run Code Online (Sandbox Code Playgroud)

模块test1.js

1:    define(['counter'], function(counter) {
2:        console.log("Executing test1");
3:        counter.increment();
4:    });
Run Code Online (Sandbox Code Playgroud)

模块test2.js

1:    define(['counter'], function(counter) {
2:        console.log("Executing test2");
3:        counter.increment();
4:    });
Run Code Online (Sandbox Code Playgroud)

Main.js

1:    require(['test1', 'test2', 'counter'], function(test1, test2, counter) {
2:        console.log("Executing main");
3:        alert(counter.get());
4:    });
Run Code Online (Sandbox Code Playgroud)

所以模块main.js是应用程序的入口点,它将首先加载依赖项"test1","test2"和"counter".(执行顺序:执行计数器,执行test1,执行test2,执行main)

所以,如果我没有理解句子"Requirejs负载的每一个模块的一次",这意味着(例如counter.js的)从行1到9的代码会被执行 …

javascript requirejs

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