• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

CoffeeScript 服务端和客户端的代码重用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

服务端和客户端的代码重用

问题

当你在CoffeeScript上创建了一个函数,并希望将它用在有网页浏览器的客户端和有Node.js的服务端时。

解决方案

以下列方法输出函数:

# simpleMath.coffee

# these methods are private
add = (a, b) ->
    a + b

subtract = (a, b) ->
    a - b

square = (x) ->
    x * x

# create a namespace to export our public methods
SimpleMath = exports? and exports or @SimpleMath = {}

# items attached to our namespace are available in Node.js as well as client browsers
class SimpleMath.Calculator
    add: add
    subtract: subtract
    square: square

讨论

在上面的例子中,我们创建了一个新的名为“SimpleMath”的命名空间。如果“export”是有效的,我们的类就会作为一个Node.js模块输出。如果“export”是无效的,那么“SimpleMath”就会被加入全局命名空间,这样就可以被我们的网页使用了。

在Node.js中,我们可以使用“require”命令包含我们的模块。

$ node

> var SimpleMath = require('./simpleMath');
undefined
> var Calc = new SimpleMath.Calculator();
undefined
> console.log("5 + 6 = ", Calc.add(5, 6));
5 + 6 =  11
undefined
>

在网页中,我们可以通过将模块作为一个脚本嵌入其中。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>SimpleMath Module Example</title>
    <script src="https://atts.ogeek.cn/attachments/image/wk/coffeescript/jquery.min.js"></script>
    <script src="simpleMath.js"></script>
    <script>
        jQuery(document).ready(function    (){
            var Calculator = new SimpleMath.Calculator();
            var result = $('<li>').html("5 + 6 = " + Calculator.add(5, 6));
            $('#SampleResults').append(result); 
        });
    </script>
</head>
<body>
    <h1>A SimpleMath Example</h1>
    <ul id="SampleResults"></ul>
</body>
</html>

输出结果:

A SimpleMath Example

· 5 + 6 = 11


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
CoffeeScript 比较范围发布时间:2022-01-29
下一篇:
CoffeeScript 语法发布时间:2022-01-29
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap