文档中心 V3.0
Node

概述

Node.js 是基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用。Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 run across distributed devices 的 data-intensive 的实时应用。

开发指南

下面为大家实战演示如何发布Node项目的demo。

使用示例

1.创建新的node应用

node-1.png
node-2.png


2.进入刚刚创建的应用控制台

node-3.png


3.在应用下创建并绑定mysql服务

node-4.png
node-5.png
node-6.png


4.查看并管理您所创建的服务

node-7.png


5.使用Express Web模块创建和部署“hello world”Node.js应用程序,当前目录必须包含该应用程序、app.js 和对其进行命名的package.json文件(如果您的应用程序依赖于任何模块的话) 创建项目

root@a005:~# mkdir hellonode
root@a005:~# cd hellonode

使用npm(Node 包管理器)安装Express模块
root@a005:~# npm install express

使用以下代码创建文件app.js
var port = (process.env.VCAP_APP_PORT || 3000);
var host = (process.env.VCAP_APP_HOST || 'localhost');
var http = require('express');
var app = http.createServer();
app.get('/', function(req, res) {
res.send('Hello from MoPaaS');
});
app.listen(port, host);

使用以下内容创建 package.json 文件
{"name":"hellonode",
"version":"0.0.1",
"dependencies":{
"express":""}}

6.把代码包压缩成zip代码包,在网页上上传

node-8.png


7.指定Nodejs版本在package.json文件内添加来指定node.js和npm版本

"engines": {
"node": "6.9.x",
"npm": "2.15.x"
}

MySQL使用举例

var db_options = {
host: 'localhost', //此处的'localhost',请使用MoPaaS的环境变量"值",如MOPAAS_MYSQL891_HOST的值
port: 3306, //此处的'3306',请使用MoPaaS的环境变量"值",如MOPAAS_MYSQL891_PORT的值
user: 'root', //此处的'root',请使用MoPaaS的环境变量"值",如MOPAAS_MYSQL891_USER的值
password: 'admin', //此处的'admin',请使用MoPaaS的环境变量"值",如MOPAAS_MYSQL891_PASSWORD的值
database: 'test' //此处的'test',请使用MoPaaS的环境变量"值",如MOPAAS_MYSQL891_NAME的值
};
//加载mysql Module
var mysql = require('mysql'),client = null;
if(mysql.createClient) {
client = mysql.createClient(db_options);
} else {
client = new mysql.Client(db_options);
client.connect(function(err) {
if(err) {
console.error('connect db ' + client.host + ' error: ' + err);
process.exit();
}
}
);
}
client.query(
'INSERT INTO TestTable1 '+
'SET Name = ?, PhoneNum = ?',
['ceshi', '******']
);
client.query(
'SELECT * FROM TestTable1',
function selectCb(err, results, fields) {
if (err) {
throw err;
}
console.log(results);
// console.log(fields);
client.end();
});

扩展服务

目前支持的扩展服务包括:

  • Glusterfs(文件系统)用户和程序可以像访问本地文件一样访问远端系统上的文件
  • MySQL(数据库)提供分布式的关系型数据库服务
  • PostgreSQL(数据库)提供分布式的关系型数据库服务
  • Mongodb(数据库)提供高性能的非关系型数据库
  • Memcached(缓存服务)提供高性能的分布式内存对象缓存服务

注意事项

1、环境变量
如果给应用绑定了相关的服务,MoPaaS将会生成对应的环境变量,您可以在代码中使用获取环境变量的方法来代替手动写入环境配置。当然,您也可以通过自定义环境变量来设置环境变量。详情请见环境变量篇章。
2、权限相关
出于安全性考虑,上传到MoPaaS的代码不被允许进行write操作,因此,有安装过程的应用需要将配置文件(一般为数据库配置文件)通过Glusterfs服务存放到文件管理中心,有上传文件功能的应用需要把文件的存放路径指向为Glusterfs给定的路径。
3、上传代码包
当手动将应用工程压缩成zip压缩包时,请勿直接将工程根目录打包,正确的打包方式为进入工程根目录,选中根目录下所有文件及文件夹,打包成zip压缩包。
4、配置默认首页
用户应用工程如未显式配置默认首页路径,如Java Web应用没有在web.xml中配置welcome页面,平台将寻找应用工程根目录下的index.html或index.php等页面作为应用的默认首页,如在应用工程根目录下未找到相关页面,则直接访问应用url时可能出现“Not Found”错误信息,在该种情况下用户需要在浏览器地址栏种输入完整的路径才能访问相关页面,例:yourappname.butterfly.mopaasapp.com/admin/login.html (yourappname是您的应用名,admin是您打包文件夹的名称,login.html是您想要访问的文件名,请根据项目定义)