博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
直接发布一个class类
阅读量:6318 次
发布时间:2019-06-22

本文共 1710 字,大约阅读时间需要 5 分钟。

引言

一个web服务器发布html文件,通过CGI接口,程序也可以对请求/回应数据流进行加工。那web服务器可以发布一个class类吗?

发布一个class类是什么意思?

当你用nodejs在后端写了一个class类,希望被前端或远程其他nodejs调用。这时你该怎么办?......还得一阵猛忙活,然后宣称提供了一个什么RESTful之类的接口。

把class直接发布行不行?就是在浏览器中或远程其他nodejs中直接调用,就像在你的后端直接调用一个模块一样。这就叫发布一个class 类。

先看一个演示程序

演示的例子当然叫HelloWorld了:-),这是惯例。

编写一个类HelloWorld.es6

class HelloWorld {    constructor() {        this.greeting = 'Hello World!';    }    welcome(callback) {        callback(null, this.greeting);    }}export default HelloWorld;

使用babel转成ES5

$ babel HelloWorld.es6 -o HelloWorld.js

如果你还不会使用babel,那就使用转吧!转完的文件叫HelloWorld.js

现在要把你写好的class发布出去了!

# npm install nodeway -g

安装nodeway,这一步应该没什么可解释的。能解释的就是这个名字,还不想解释。

使用nodeway命令,把你写的HelloWorld这个类发布出去吧!

# nodeway --class HelloWorld.js --host 0.0.0.0 --port 8080 --docs . &

这句的意思是启动一个Web Server,把HelloWorld.js发布出去。

好了,现在剩下的就是测试了。

编写测试程序 index.html

    
HelloWorld

用浏览器访问你写的这个index.html文件,就可以看到你发布成功了。

简单吧?还能再简单点不?能呀!如果你懒得安装nodeway包,那就把下面内容贴到你的Web服务器下

    
HelloWorld

这有什么不同?原来<script>标签中src变了!远程执行我发布的HelloWorld类?这是跨域访问呀?这也能行?

当然没问题了,你试试就知道了。

还有什么新鲜的吗?有啊!你可以用node远程调用HelloWorld类。vi welcome.js,写如下代码:

var requireFromUrl = require('require-from-url');requireFromUrl("http://yishizhencang.com:8080/HelloWorld.js")   .on('Resolved', function(next, HelloWorld) {        var api = new HelloWorld.default;        api.welcome(function(err, greeting) {            console.log(greeting);        });    })   .on('Rejected', function(next, e) {        console.log(e);    });

requireFromUrl是什么?就是require!只不过是从URL中加载。

$ npm install require-from-url$ node welcome.js

以上这个例子,可以通过如下命令下载

$ npm install nodeway-helloworld

说完了?还有呢!

nodeway同时支持json-rpc,这样用其它语言访问也是没问题的。如果你有这方面的需求,就查看一下json-rpc的文档,编写个json-rpc客户端程序就行了。

转载地址:http://dkjaa.baihongyu.com/

你可能感兴趣的文章
Loadrunner 性能测试服务器监控指标
查看>>
自动化运维工具之ansible
查看>>
memcached的安装
查看>>
freebsd系统安装
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
JavaScript函数eval()
查看>>
Linux LTP 测试框架
查看>>
log4j 每次运行生成文件
查看>>
“经常加班”有误区
查看>>
jquery各种事件触发实例
查看>>
我的友情链接
查看>>
MY TroubleShooting
查看>>
鸟哥学习笔记---DNS
查看>>
Linux 常用目录管理命令(cd pwd mkdir rmdir)
查看>>
java程序员菜鸟进阶(四)oracle基础详解(四)oracle开启和关闭服务程序——解决安装oracle占用大量内存...
查看>>
Flask_学习笔记_09: Flask中的继承
查看>>
Mahout源码目录说明
查看>>
我的友情链接
查看>>
Java学习日志(17-2-集合框架工具类Arrays及其他特性)
查看>>