Tag: 扩展

在所有Node应用程序上扩展Object.prototype.myNewMethod

我刚刚开始在NodeJs,所以我不知道这是否是一个很好的做法,对不起 我有我的对象实现添加一个合并方法,我创build的所有对象,所以我可以合并到一个不同的对象。 Object.prototype.merge = function(source){ //…my code here return this; } 所以我想知道如何让我的Node应用程序中的所有模块都可用? 我已经阅读了这本优秀的书 ,我可以为它创build一个模块 ,然后调用utils.merge(obj1, obj2) 。 但即使如此,我宁愿继续使用我的对象的实现,而只是调用obj1.merge(obj2) 有没有办法做到这一点? 提前致谢

关于input到通过导出导出的javascript类方法调用

这里的问题属于ExtendScript代码,但我相信它应该是不可知的任何JavaScript的实现。 如果我们在JS库文件(base64.js)中有这样的东西, exports.encode64 = encoder('+/'); //… function encoder(extra) { //… } 然后在另一个使用导出方法的文件中,首先在某处导入/ includes /需要base64.js var data = "some data"; base64.encode64(data); 这是否意味着如果我们不导出方法并直接调用encoder(),假设base64.js被“包含”到执行代码的全局命名空间中,那么我们会这样调用它? encoder('+/' + data); 到目前为止,我所见过的导出通常会导出一个没有参数的方法,将别名分配给暴露在库/文件之外的函数/方法。 但是这个例子在我们传入参数后对我来说很奇怪,后来我们在调用别名的时候也传入了参数。 如果我的假设是不正确的,那么base64.encode64别名与编码器的正确用法是什么? 对于参考/上下文,可以在这里findbase64.js的完整源代码: https://github.com/debrouwere/Extendables/blob/master/dependencies/base64.js 在一个相关的说明,有一些很好的教程,解释了出口的所有这些变化,并要求/import/包括?

不能实例化导出的自定义模块Nodejs的实例,它扩展了EventEmitter

社区。 我不能实例化导出的自定义模块Nodejs的实例。 我有2个文件:一个自定义testing模块“resource.js”和“ext-emitter.js” 在resource.js中创buildResource类,并从EventEmitter类扩展它。 // resource.js var util = require("util"); var eventEmitterInstance = require("events").EventEmitter; function Resource(m){ this.maxEvents = m; var self = this; process.nextTick(function() { var count = 0; self.emit('start'); var t = setInterval(function(){ self.emit('data', ++count); if (count === m) { self.emit('end', count); clearInterval(t); } }, 10); }); } util.inherits(Resource, eventEmitterInstance); module.exports = Resource(); 然后我导入上面的模块在下一个文件ext-emitter.js我尝试实例化扩展自定义模块资源()(它依次扩展EventEmitter类),但我得到一个错误:“资源”未定义“ […]

Node.JS数据inputstream

有一个inputstream扩展,所以我可以调用像我习惯的方法 例如 stdin.readData(function (err, buffer) { // err if an error event was created, buffer if this is just data, null to both if the end of the stream was reached. // Added bonuses would be other methods I am used to in Java // – readLine // – readFully // – readStringUtf8 // – […]

使用TypeScriptinheritance不起作用浏览器端

先前对此的讨论: inheritanceTypeScript和导出的类和模块 这是从ValidatorMessage.class.ts生成的源代码: ///<reference path='./def/lib.d.ts'/> ///<reference path='./def/node.d.ts'/> var __extends = this.__extends || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } __.prototype = b.prototype; d.prototype = new __(); }; var message = require("./Message.class"); var ValidatorMessage = (function (_super) { __extends(ValidatorMessage, _super); function ValidatorMessage() […]

Mongoose模式字段定义问题(关键字:nodejs,req.body,extend,field,type)

我花了半个小时才弄清楚是什么问题,所以我需要发表这个问题来节省你的宝贵时间。 我有一个架构,其定义如下: var mongoose = require('mongoose'); var ItemSchema = new mongoose.Schema({ title: String, desc: String, price: Number, owner: { // this field would be filled with req.session.user uid: {type: Number, index: true}, nickname: String, contact: String } }); module.exports = mongoose.model('ItemSchema', ItemSchema); 然后,如果前端发送如下请求: console.log( req.body ); /* { title: 'apple', desc: 'nice apple', price: 100 […]

如何将函数添加到可以访问其variables的JavaScript对象

我正在尝试做一些JavaScripttesting驱动的开发,并想用模拟replace一个道。 比方说,我有一个对象myObject有一个私人的VAR DAO,我想创build一个setter: var dao = new RealDao(); function funcUsesDao() { dao.doStuff(); } 然后在另一个文件中,我有一个这个对象的实例的句柄,并希望添加一个setter,所以我可以做到以下几点: var mockDao = {function doStuff() { /*mock code */}}; myObject.setDao(mockDao); myObject.funcUsesDao(); should use mock dao 环境细节是这是node.js和我有一个句柄的对象是通过做var myObject = require('../myObject');