Articles of 命名空间

tsc生成.d.ts文件给出错误“找不到命名空间”Jimp“

我正在开发一个NPM包,我的一个类是这样的: import { MIME_PNG } from 'jimp'; import { IDimensions } from './spritesheet'; /** * A class for a single sprite. This contains the image * and supporting data and methods */ export class Sprite { image: Jimp.Jimp; dimensions: IDimensions; /** * * @param img a jimp image of the sprite */ constructor (img: Jimp.Jimp) […]

如何在redis上命名空间键以避免名称冲突?

我想使用redis来存储一些我自己的键值对,但是我的一些模块已经使用它。 会话数据的redis快速会话存储,以及套接字io的redis适配器。 所以我的问题很简单,我怎么能创build或指定一个数据库/命名空间来存储我自己的密钥没有关键的冲突? 我正在使用node-redis驱动程序。

当“连接”时,Socket.io中的服务器端套接字返回错误的名称空间

我正在使用Socket.io – 1.0.6与快递。 并尝试下面的代码。 服务器 var io = require('socket.io')(http); io.on('connect', function(socket){ console.log("server nsp->%s", socket.nsp.name); //<– printed always "server nsp->/", In my thought, it should print "/custom_nsp". }); 客户 var socket = io.connect("http://mysocket.io/custom_nsp"); socket.on('connect', function(){ console.log("client nsp->%s", socket.nsp); //<– printed correctly "client nsp->/custom_nsp" }); 我不知道为什么服务器套接字的namespce总是“/”。 我有什么不对吗?

我的名字空间没有定义。 打字稿

我得到了Visual Studio Community 2015 + Node.js工具,我创build了“Blank Node.js控制台应用程序”Typescript项目 我已经添加了一个TypeScript文件,TypeScript1.ts并提出以下内容: module MyModule { export class Calculator { add(x: number, y: number): number { return x + y; }; constructor() { } } } 在主文件中,我把这个: /// <reference path="TypeScript1.ts" /> console.log('Hello world'); var subject: MyModule.Calculator; subject = new MyModule.Calculator(); var result: number = subject.add(2, 3); console.log(result); 它的构build没有问题,但是当我尝试debugging/运行时,它指出: ReferenceError: MyModule […]

当“不要做”不是一个选项时,如何将Typescript命名空间与外部模块混合在一起

情况 我有一个使用命名空间编写的Typescript应用程序。 我想将这些逻辑(Google OAuth)从客户端移到节点服务中。 我在这里创build了一个几乎完整的项目。 这个新项目有一个节点组件,它将使用一个密钥和一个客户端组件来向谷歌发送授权请求,其他应用程序将与服务器通信。 我也有一个testHarness应用程序使用这个客户端来testing它,并确保我可以在基于命名空间的应用程序中使用它。 我有一些客户端和服务器共享的接口。 我希望我的客户端代码可以在使用externam模块和命名空间的项目中使用 – 即我现有的项目。 这一定是可能的 我在很多地方都读过 不要在外部模块中使用“名称空间”。 不要这样做。 认真。 停止。 比如在这个答案上,但我仍然坚信这一定是可能的。 我认为这是因为在我的项目中,我依赖于RxJs。 我的node_modules文件夹中的这个项目被客户端和服务器使用。 我曾经尝试过 在我的项目中,我有一个contracts.d.ts文件,我想在客户端和服务器之间共享。 堆栈溢出 我看着这个问题: Typescript es6导入模块“文件不是模块错误” 并使我的合同看起来像这样: // test.js – exporting es6 export module App { export class SomeClass { getName(): string { return 'name'; } } export class OtherClass { getName(): string { return […]

在node.js中导入名称空间

我有一些允许合并命名空间的函数,当模块包含很多的函数(我暴露了一个API与几十个combinators)非常类似于import它会产生大量的var f = target.f; 为每个项目从出口 function getNamespace(name, exports){ var output=''; for(var item in exports){ output += 'var ' + item + ' = '+name+ '.'+item + ';'; } return output; } 和用法: var paco = require('./paco.js'); eval(paco.getNamespace('paco', paco)); // instead of paco.between(paco.start(),paco.content(),paco.end()) between(start(), content(), end()) 问题 : 我有一种方法可以将eval“隐藏”到某个函数中吗? 我不希望既不改变全局命名空间,也不要调用vm.runInThisContext ,只需要在调用函数类似于require之后,将一些局部variables添加到调用上下文中。 我的意思是我需要类似的东西 import('./paco'); // this should […]

meteor0.8.x命名空间

背景信息 我目睹了Meteor将每个文件封装成一个匿名函数来防止填充全局名称空间。 假设我有一个类似的文件结构: 客户/ 的index.html style.css文件 client.js 助手/ somehelper.js 服务器/ server.js 楷模/ … 我的问题 我如何使用文件client.js中somehelper.js中的对象? 我如何创build我自己的命名空间? 例如: client , client.helpers , models和server 。

node.js中的'Global'对象

我正在使用0.3.1-pre Node.js 这样做: typeof global.parseInt 结果是 'undefined' 但是在input“全局”后按控制台中的[Tab]键。 给出了一个函数列表,包括parseInt。 那么parseInt是否是全局命名空间的成员呢?

Socket.io:命名空间,渠道和合作

我有一个Node.js Web服务器,它运行一个使用Socket.io创build的顶层套接字服务器。 基本上,这工作。 我现在想要实现的是,连接的客户端被分组。 所以可能会有一些组成A组的客户和其他一些组成B组的客户。他们应该通过特定的URL( localhost:3000/A或localhost:3000/B来select他们属于哪个组。 在Socket.io中,我现在想发送消息给A组中的所有客户端,或者B组中的所有客户端或所有客户端,而不必查看他们的组。 这基本上就像是和房间聊天,你可以给特定房间内的所有客户或任何客户留言,不pipe他在哪个房间。 使用Socket.iodevise这样一个系统的最佳方法是什么? 到目前为止,我一直在尝试使用命名空间,这基本上可以创build组A和B,但是我无法将消息发送到所有客户端,无论他们在哪个房间。至less我不知道该怎么做这个。 我应该如何build模? 什么是我应该寻找的正确的条件? 更新:根据@sdedelbrock的答案,我可以使用命名空间或房间: 如果使用命名空间,我不能长时间发送给每个人,不pipe他们的命名空间。 这是因为io.sockets是io.of('')的快捷方式,当然这与命名空间不再匹配。 这意味着我应该使用房间,但是我想知道房间和命名空间之间的语义差异是什么。 简而言之:为什么同一个(?)想法有两个概念?