nodeway: 基于nodejs的微服务(Microservices)
一个微服务(Microservices)被定义为一个JS类(Class)。
nodeway直接发布这个JS类,使浏览器或nodejs可以远程调用。
Installing
# npm install nodeway -g
MacOS
# vi ~/.bash_profile
export NODE_PATH="/usr/local/lib/node_modules:/root/node_modules"
Linux
# vi ~/.bashrc
export NODE_PATH="/usr/local/lib/node_modules:/root/node_modules"
Using
# nodeway
Usage: nodeway [options]
Options:
-h, --help output usage information
-V, --version output the version number
--class <class>[,<class>]* class list
--host <host> Listen ip or hostname, default '127.0.0.1'
--port <port> Listen port, default '80'
--docs [root] Httpd docs root, optional
--config <file> Config file
Prompt:
Either --class or --config must be one.
Example 'HelloWorld.js'
建立测试目录,在测试目录下创建'HelloWorld.js'微服务,内容如下:
const Nodeway = ; { superuuid; } async { this; return { ; }; } moduleexports = HelloWorld;
Run
# nodeway --config nodeway-helloworld/config.js &
Test
编写浏览器调用微服务测试文件'index.html',内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HelloWorld</title>
<script type="text/javascript" src="/HelloWorld.js"></script>
</head>
<body>
<script>
let api = new HelloWorld;
api.on('data', message => document.write(message+'<br/>'));
setInterval(async function(api) {
try {
let message = await api.say('Hello Safari!');
document.write(message+'<br/>');
}
catch(e) {}
}, 6000, api);
</script>
</body>
</html>
在浏览器中访问'http://localhost:8080'进行测试。
编写nodejs调用微服务测试文件'test_from_nodejs.js',内容如下:
const requireFromUrl = ;const readline = ; { let api = ; api; readline ;} ;
执行node test_from_nodejs.js进行测试。
你也可以用命令npm install nodeway_helloworld直接安装这个测试例子。
License
MIT © May xiaoya zhang