# purenode **Repository Path**: beborn/purenode ## Basic Information - **Project Name**: purenode - **Description**: nodejs web开发框架,实现了服务器,路由请求转发,控制器,模板引擎等基本框架功能 - **Primary Language**: NodeJS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2017-09-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README purenode ==== > nodejs 学习型的web框架,很小的一个框架,初步实现了服务器,路由请求转发,控制器,模板引擎等基本框架功能,共初学者学习使用。purenode的设计思想是让开发者像开发php web一样的开发nodejs web应用。如果是熟悉Herosphp或者ThinkPHP的话,那么这个框架你使用起来应该是得心应手的。 安装 ==== #### 1.作为模块安装 ```shell npm install purenode ``` #### 2. 作为项目安装(推荐) ```shell 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文件) ```javascript var purenode = require("./purenode.js"); var app = purenode(); app.static("/public/"); app.listen(8888); ``` 创建控制器 ===== vim www/demo/action/UserAction.js (创建控制器,编写控制器逻辑代码) ```javascript "use strict" module.exports = { // index page index : function(req, res) { var params = req.getParameters(); var data = { title : "欢迎使用purenode框架", hello : "Welcome, this is the index page", params : params }; var app = req.getApp(); var db = app.getDB(); var model = F_require("model"); var userModel = model.getInstance(app, "user"); var date = new Date().format("yyyy-MM-dd hh:mm:ss"); 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.count(function(e, r) { console.log(e,r); }); //查询数据 db.query("select * from user", function(err, rows) { if ( err ) { console.log(err); } else { data.users = rows; } res.display("index", data); }); } } ``` 创建模板 ==== vim www/demo/views/index.html ```html
| id | name | mobile | create_time | |
|---|---|---|---|---|
| {{user.id}} | {{user.name}} | {{user.username}} | {{user.email}} | {{user.addtime | date:"yyyy-MM-dd hh:mm:ss"}} |
```
运行
====
```shell
node app.js
```
访问
====
在浏览器输入 http://localhost:8888
热部署
=====
如果你习惯了php的开发环境,你肯定对nodejs这种开发有点不适应,因为每次修改源代码都要重启服务器,跟java一样(当然,nodejs启动肯定比java快些)。你可以通过安装pm2工具来实现热部署。不过有点坑的就是,pm2只能实现模板的热部署,如果你更改了控制器文件还是需要重启服务器的。
```bash
npm install -g pm2
pm2 start app.js //启动app
pm2 stop app.js //停止app
pm2 reload app.js //重启app
```
启动后如图所示:
