Tag: oop

javascript的子类node.js表示方法来添加常见的function?

对不起,在这里还是比较新的JavaScript,所以希望这个问题不太难堪,但是: 我发现我沿着以下几行在node.js(express)中写了很多代码: app.get("urlscheme1", function (res, resp) { try { auth_request(req); // throws on failure validate_url_params(req); // throws on failure common_tasks(); specific_taskABC(); } catch (e) { if (e.error == "auth") { resp.send(….); } else if (e.error == "url_scheme") { resp.send(….); } else { resp.send(translate_error(e), code_for_error(e)): } } }); app.put("urlscheme1", function (res, resp) { try { auth_request(req); […]

JavaScript和NodeJS:从不同的JS文件调用方法

我正在使用NodeJS包含一个js文件到另一个。 下面我显示我的文件。 这两个类都包含两个对象的构造函数。 我想从ClassA中调用ClassB中的一个方法。 在ClassA中,我需要ClassB(如下所示),我试图创build一个新的B类实例,然后调用B类的方法获得以下错误: cB.get(); ^ TypeError: Cannot call method 'get' of undefined at Object.<anonymous> (/home/—/ClassA.js:12:4) //ClassA.js var imported = require('./ClassB'); function ClassA() { //…. } var cA = new ClassA(); var cB = imported.ClassB(); cB.get(); //ClassB.js function ClassB() { var myVar = 'test'; function _get () { return myVar; }; this.get = function […]

在节点module.exports的对象方法中使用“this”

这是我的模块: module.exports = { name: '', email: '', id: '', provider: '', logged_in: false, isLoggedIn: function(req, res, next){ console.log(this); } }; 我像这样导入它: var user = require('user'); 当我使用isLoggedIn函数作为Express的中间时,控制台会logging全局的Node对象。 我如何得到它的function是在内的对象? 编辑 所以我有我的用户对象如上定义。 根据各种因素,这个对象在程序的其他地方被填充。 我用创build一个中间件函数来快速的testing用户是否login。显然把这个函数放在用户对象的地方,但是我需要访问logged_in属性来正确评估它。 因此使用this.logged_in。

这是在Javascript / node.js中执行私有函数的正确方法吗?

我在node.js中编写的一个类如下所示: module.exports = exports = function(){ return new ClassA() }; function ClassA(){ this.myvariable = 0; } 我有一个function,我想成为私人。 为了理解这个函数是否在构造函数之外声明的,它本质上是一个静态函数,它不能引用this.myvariable。 是处理这个正确的方法来在这样的构造函数中声明函数: //within constructor this.myFunction = function myFunction(){ console.log(this.myvariable) } 或者有没有更好的方法来做到这一点,不会给我一个潜在的巨大的构造函数? 编辑:它看起来像我误解了这里的东西,因为上述代码甚至不工作…

Node.js中的代码是否正确? (可变范围)

function user(req,res){ var uuu = req.params.userid; processUserObject(uuu, function(user_object){ //This could take a long time… console.log(uuu); res.send(JSON.stringify(user_object)); }); }; app.get('/:userid',function(req,res){ user(req,res); }); 首先,假设该网站获得大量的点击。 (每秒千次!) 当用户用他的ID点击页面时, console.log(uuu)输出正确的ID? 我担心的是(关于variables范围),当人A碰到页面并且通过processUserObject ,可能需要很长时间,在此期间,人员B碰到页面并且改变uuu …导致console.log输出人员B的ID而不是人员A的ID。 附注:我有这个担心,因为当我刚接触Node.js时,我忘了使用var初始化一些variables。 当我的网站有很多的点击,我的用户注意到,他们从其他用户的点击获取信息…哎哟。

新function返回新function

我对JavaScript中的新关键字有点困惑。 以下面的例子 function A (value) { this.a = value; } function B (value) { return new A (value); } console.log ( B (0)); // { a: 0 } console.log (new B (0)); // { a: 0 } 我希望能够创build一个“A”的新实例,而不必使用“新”。 为此,我有“B()”,但是当我调用“new B()”时,它看起来与“B()”做了同样的事情,就像忽略了“new”一样。 在这两种情况下,instanceof等于“A”。 究竟是怎么回事?

Nodejs为什么数组初始化与原型静态?

考虑下面的代码 Class = function() { //this.array = []; } Class.prototype.array = []; Class.prototype.str = null; var a = new Class(); var b = new Class(); a.array.push("a"); console.log (a.array); b.array.push("b"); console.log (b.array); a.str = "a"; console.log (a.str); console.log (b.str); b.str = "b"; console.log (a.str); console.log (b.str); 如果我们按照原样运行它,我们会注意到在其任何实例中修改Class的array都是静态完成的 – 对a中数组的更改反映在b ,反之亦然。 然而,修改strvariables,尽pipe初始化与array相同的方式不是静态的。 如果我们取消注释构造函数中的行,那么在任何情况下对数组的更改都不会静态地完成。 我偶然发现了一个nodejs错误? 我无法在任何地方find有关这种情况的详细信息,那么是否有人可以解释为什么nodejs有这种行为?

如何编写一个面向对象的Node.js模型

我在Node.js中编写一个面向对象的Cat类遇到了很多麻烦。 我如何编写一个Cat.js类,并以如下方式使用它: // following 10 lines of code is in another file "app.js" that is outside // the folder "model" var Cat = require('./model/Cat.js'); var cat1 = new Cat(12, 'Tom'); cat1.setAge(100); console.log(cat1.getAge()); // prints out 100 to console var cat2 = new Cat(100, 'Jerry'); console.log(cat1.equals(cat2)); // prints out false var sameAsCat1 = new Cat(100, 'Tom'); […]

面向对象的NodeJSdevise

我一直在NodeJS工作一段时间,无法绕过面向对象devise的概念。 我能做的最好的是: var SomeClass = function(){ var self = this; self.connect = function(){ // function code } // for events/callbacks raised in this class …(someVar, self.onDataReceived) self.onDataReceived = function(data){ // do something with data } } 这适用于自包含的代码,但是当类需要与海誓山盟进行交互时,我的代码组织只是走出了窗口。 所以,我的问题是: 是否真的有可能在JavaScript中有一个很好的应用程序devise,我们在Rails / Laravel中find并且喜欢? 如果单线程是未来,没有更好的selectNodeJS,促进代码组织?

如何从服务器保存值对象?

我通过jsons与服务器通信,在Nodejs和Actionscript中都是对象(通过string序列化)。 我在客户端使用的那些对象,通过读取/修改它们,还创build相对于来自服务器的辅助对象(来自Classes)。 我有两个selectdevise我的客户之一,我坚持在决定哪些是更灵活/面向未来。 保持数据,创build许多方法来修改对象,保持独立的辅助对象。 将数据转换为类的实例,其中每个类都有自己的一组方法,而不是在相同的地方堆放方法。 通常我和2一起去,因为面向对象很好吃,但是在数量上看起来要简单得多。 我想我的问题是,我无法弄清楚,如果我的客户端基本上是一个视图(从MVC)的服务器是控制(也来自MVC),或者如果我的客户端和服务器是两个独立/独立的项目沟通,我应该把客户视为一个MVC项目。 我会感激你的2美分。