purenode
nodejs 学习型的web框架,很小的一个框架,初步实现了服务器,路由请求转发,控制器,模板引擎等基本框架功能,共初学者学习使用。purenode的设计思想是让开发者像开发php web一样的开发nodejs web应用。如果是熟悉Herosphp或者ThinkPHP的话,那么这个框架你使用起来应该是得心应手的。
安装
1.作为模块安装
npm install purenode
2. 作为项目安装(推荐)
git clone git@git.oschina.net:blackfox/purenode.git #然后直接在项目根目录下做开发就好了。
框架目录结构
app.js app入口文件
config.js app配置文件
www 应用程序文件目录
|-- demo //模块目录
|-- action 控制器目录
|-- views 模板目录
public 静态资源目录(可更改)
framework 框架根目录
|-- purenode.js 框架的入口文件
|-- request.js http请求处理
|-- response.js 响应处理
|-- router.js 路由处理
|-- server.js 服务器
|-- model.js 数据模型
function.js 全局函数
template-helper.js art-templte模板引擎的扩展解析
创建应用服务
vim app.js (创建app文件)
var purenode = ; var app = ;app;app;
创建控制器
vim www/demo/action/UserAction.js (创建控制器,编写控制器逻辑代码)
"use strict" moduleexports = // index page { var params = req; var data = title : "欢迎使用purenode框架" hello : "Welcome, this is the index page" params : params ; var app = req; var db = app; var model = ; var userModel = model; var date = ; var user = username:"xiaoming" name:"小梦" password:"123456" addtime:date; //添加数据 //userModel.add(user, function(e, r) { // console.log(e,r); //}); //删除数据 //userModel.delete(5, function(e,r) { // console.log(e,r); //}); //批量删除 //userModel.deletes("id > 8", function(e, r) { // console.log(e, r); //}); //修改数据 //user.id = 6; //user.name = "xiaoyang333"; //userModel.update(user, function(e, r) { // console.log(e,r); //}); //批量更新 //user.addtime = new Date().format("yyyy-MM-dd hh:mm:ss"); //userModel.updates(user, "id > 6", function(e, r) { // console.log(e, r); //}); userModel; //查询数据 db; }
创建模板
vim www/demo/views/index.html
{{title}} {{hello}} 接收到的参数列表 {{each params}} {{$index}} : {{$value}} {{/each}} {{F.getUrl("login/index")}} {{hello | cut:8}} 用户列表 id name mobile email create_time {{each users as user}} {{user.id}} {{user.name}} {{user.username}} {{user.email}} {{user.addtime | date:"yyyy-MM-dd hh:mm:ss"}} {{/each}}
运行
node app.js
访问
在浏览器输入 http://localhost:8888
热部署
如果你习惯了php的开发环境,你肯定对nodejs这种开发有点不适应,因为每次修改源代码都要重启服务器,跟java一样(当然,nodejs启动肯定比java快些)。你可以通过安装pm2工具来实现热部署。不过有点坑的就是,pm2只能实现模板的热部署,如果你更改了控制器文件还是需要重启服务器的。
npm install -g pm2 pm2 start app.js //启动apppm2 stop app.js //停止apppm2 reload app.js //重启app
启动后如图所示: