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类继承的主要内容,如果未能解决你的问题,请参考以下文章