ExpressJS和CoffeeScript类继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ExpressJS和CoffeeScript类继承相关的知识,希望对你有一定的参考价值。

使用qazxsw poi我可以扩展节点qazxsw poi类:

CoffeeScript

如果我正确理解http.Server{Server} = require 'http' class MyServer extends Server foo: 'bar' myserver = new MyServer console.log myserver.foo # 'bar' class MyServer2 extends MyServer constructor: -> super() myserver2 = new MyServer2 myserver.listen 3000 扩展this post,反过来扩展express。但是以下有一些继承问题:

connect

http.Server被调用时,它会引发以下错误,因为Express = require 'express' class MyApp extends Express foo: 'bar' myapp = new MyApp console.log myapp.foo # undefined class MyApp2 extends MyApp constructor: -> super() myapp2 = new MyApp2 console.log myapp2 # {} myapp2.listen 3000 # throws TypeError 是一个空对象listen并且没有myapp2方法:

{}

如何使用listen以面向对象的方式使用TypeError: Object #<MyApp2> has no method 'listen'

答案

是的,你完全可以做到。只需删除那些express

CoffeeScript

()现在代表一个类,所以也许你应该把它称为express = require 'express' class MyApp extends express myapp = new MyApp myapp.listen 3000 ,坚持使用CoffeeScript的指导方针。你看,express返回一个Express后代的实例,而不是一个后代类,所以你试图扩展一个服务器实例。 CoffeeScript允许直接使用JS原型,这就是你不小心做的事情。所以,前两行应如下所示:

express()
另一答案

你不能从快递或服务器扩展,因为它不是一个类的功能。您可以使用以下方法测试:

http.Server

以上是关于ExpressJS和CoffeeScript类继承的主要内容,如果未能解决你的问题,请参考以下文章

coffeescript 中的静态类和方法

Meteor >0.6.0 和 CoffeeScript 的全局类

带有(ES6)类和继承的Angular.js DI

CoffeeScript:如何使用胖箭头和这个?

AngularJS 承诺处理 CoffeeScript 类

在 coffeescript 类中包装meteor.js 车把模板