分享

百度云BAE语言环境(1)Node.js介绍

yuwenge 发表于 2013-12-24 00:35:15 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 29582
百度云支持什么语言:node.js是其中一种,node.js可以是一种高性能语言,百度支持也无可厚非,想知道什么是node.js,可以参考什么是node.js这篇帖子。Node.js

<sidebar>sidebar:bae_menu</sidebar>


概述Node.js 执行环境当前版本为0.10.21,NPM版本1.3.11。
Node.js部署由NPM管理,新创建的Node.js部署包括app.conf,package.json和server.js文件。
Node.js环境会通过npm install命令来安装Node.js模块,将依赖包下载到.bae/node_modules目录下,在安装之前会删除.bae/node_modules目录,因此用户上传的代码中不能带有.bae/node_modules目录。 Node.js通过npm start命令来运行代码,package.json文件中必须包括"scripts":{"start": "node index.js"},来指定入口文件.

开发指南
如果您是初次使用BAE,您可通过阅读《新手入门》来了解如何创建及管理 Node.js 部署。
1. 创建应用,添加BAE部署,选择“node.js-web”类型。
2. 创建成功后,在您的部署目录下会自动创建以下文件,可通过SVN或GIT方式查看。
* app.conf (lighttpd转发规则配置文件) * package.json(npm配置文件) * server.js (入口代码文件)
说明:
app.conf是lighttpd的配置文件,负责配置lighttpd的转发规则。
package.json是NPM即Node.js包管理工具的配置文件,负责指定编译时下载那些依赖包和指定启动时的入口文件。
server.js是入口代码文件,该文件中实现了一个最简单的 HTTP 服务器,与标准 Node.js 环境不同的是:创建 HTTP server 时候要监听的端口不能任意指派,必须使用18080
日志调试
当用户的应用开始运行时,可以通过我们的应用日志来对应用的状态进行查看 以及相关代码的调试。
  • 1.默认日志

默认情况下,web类型的应用我们会提供四类日志“lighttpd.log”、“lighttpdwf.log”、“npm_start.stdout.log”、“npm_start.stderr.log”。

    • 1.lighttpd.log 实时的显示lighttpd web服务器的请求日志;
    • 2.lighttpdwf.log 实时的显示lighttpd web服务器的错误日志;
    • 3.npm_start.stdout.log 实时显示用户打印的标准输出日志,如:console.log("stdout")或者用log4js打印的日志
    • 4.npm_start.stderr.log 实时显示用户打印的标准输出日志,如:console.error("stderr")
  • 2.自定义日志
如果用户觉得日志种类不够,也可以自己来定制日志的种类和内容,只需要用户自定义的内容输出到 “/home/bae/log” 下即可,如 “/home/bae/log/user.log”,那么就可以在日志界面中看到。  
框架支持
由于BAE3.0对运行环境不再有沙盒限制,理论上来讲Nodej.js支持所有框架。
以Express为例,demo示例下载 nodejs-express-demo
注意事项
  • Node.js环境使用NPM进行管理
    • 在编译时使用npm install命令将依赖包安装到.bae/node_modules目录下,在编译之前会删除.bae/node_modules目录,因此用户不能上传.bae/node_modules目录,用户可以将依赖的包配置在package.json中,或者放到应用根目录的node_modules下。加载依赖包时会首先从应用根目录下的node_modules中查找,然后再去.bae/node_modules目录中查找。
    • Node.js环境运行时使用npm start命令,用户需要在package.json中配置start的js文件。如:配置”scripts”: {“start”: “node index.js”},来指定入口文件为index.js。
    • 用户的HTTP server必须监听18080端口。
    • MySQL和MongoDB不支持长连接
    • 连接MySQL时用户需要主动捕获异常
client.on('error',function(err) {  if (err.errno != 'ECONNRESET') {    throw err;  } else {    // do nothing  }});

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条