Tag: 声明

断言对象上存在可枚举的属性

是否有可能使用核心Node.js断言模块来检查属性是否是虚假的对象上是否存在一个属性? https://nodejs.org/api/assert.html 通常我们可以通过运行检查一个对象是否有属性 var assert = require('assert'); assert(obj.prop); 但是如果obj.prop存在但是是虚的,这是行不通的。 我更喜欢使用Node.js断言模块,宁愿避免其他解决scheme,谢谢。 也许最好的办法是: var assert = require('assert'); assert(prop in obj);

在deepEqual中奇怪的新date

我有这个代码 var assert = require('assert'); describe('date', function() { it('deep equal', function() { assert.deepEqual({date: ''}, {date:new Date()}); }); }); 当我用摩卡进行testing时,我得到了这个 AssertionError: { date: '' } deepEqual { date: 2017-03-08T21:58:45.767Z } + expected – actual { – "date": "" + "date": [Date: 2017-03-08T21:58:45.767Z] } at Context.<anonymous> (test/test_date.js:5:12) 为什么deepEqual生成的date格式为[Date: 2017-03-08T21:58:45.767Z]而不是这种格式2017-03-08T21:58:45.767Z ? 为什么生成的date在括号[Date: …] ?

如何为具有构造函数的复杂外部commonjs模块(如imap)编写TypeScript声明文件?

这个问题是我早期的一个改进: 如何为具有构造函数的外部commonjs模块编写TypeScript声明文件? 我试图为imap模块编写一个声明文件: – imap on npm – node-imap这个文件应该是什么样的? 在没有find我上面提到的原始问题的满意答案之后,我意识到这个语言有一些相互竞争的特征: 任何导出或导入都会使模块成为外部模块 似乎没有办法从具有(模块级)构造函数的外部模块导出多个实体,因此共享实体必须位于模块外(环境)。 看我以前的问题(上面)。 没有办法将外部模块导入到声明模块之外的声明文件中 下面的模式是不允许的: import fs = require('fs'); declare module 'A' {} import fs = require('fs'); declare module 'A' {} 这是我到目前为止的声明文件: interface IIMAPAccount { user: string; password: string; host: string; port: number; tls?: boolean; } interface IEMail { mail: any; } interface ICriteria { […]

在node.js中声明值

我有一个function, 编辑1 – 更新的function与真正的一个,因为前一个是简化的同步function和代码将工作正如@AlexMA在评论中指出 'returnSuccessOrFailure': function () { return driver.findElement(wd.By.css('div#button')).then(function (button) { return button.getAttribute('class').then(function (status) { return status; }); }); } 在我的node.jstesting中,我的断言失败,因为assert在returnSuccessOrFailure完成执行之前被调用。 var value = returnSuccessOrFailure(); assert.equal(value,'success', 'Looks like something failed'); 如果我在returnSuccessOrFailure实现一个承诺,并链接我的断言,那么这是有效的。 我的问题是,我是否必须始终执行承诺,以阻止执行? 我是Javascript新手,它的asynchronous性和任何洞察力何时使用承诺,什么时候不会有用。

Tchannel服务器代码不工作。 (Python和nodejs)

我刚开始学习Uber的Tchannel。 我试图从python和nodejs的tchannel文档运行代码。 在这两种情况下,我都无法将客户端连接到服务器。 这是我的代码看起来像nodejs,我从http://tchannel-node.readthedocs.org/en/latest/GUIDE/ : var TChannel = require('tchannel'); var myLocalIp = require('my-local-ip'); var rootChannel = TChannel(); rootChannel.listen(0,myLocalIp()); rootChannel.on('listening', function onListen() { console.log('got a server', rootChannel.address()); }); var TChannelThrift = rootChannel.TChannelAsThrift; var keyChan = rootChannel.makeSubChannel({ serviceName: process.env.USER || 'keyvalue' }); var fs = require('fs'); var keyThrift = TChannelThrift({ source: fs.readFileSync('./keyvalue.thrift', 'utf8') }); var ctx = […]