Comparing version 0.1.1 to 0.2.1
var koa = require('koa'); | ||
var mvc = require('..') | ||
var mvc = require('lark-mvc') | ||
var app = koa(); | ||
console.log('reach example index.js') | ||
app.use(function *(next){ | ||
var start = new Date; | ||
yield next; | ||
var ms = new Date - start; | ||
console.log('%s %s - %s', this.method, this.url, ms); | ||
}).use(mvc.middleware({'path': 'examples/models'})) | ||
app.use(mvc.middleware({ | ||
'path': './models' | ||
})) | ||
.use(function *(next){ | ||
@@ -12,0 +8,0 @@ yield next; |
@@ -1,6 +0,5 @@ | ||
var dao = require('../../../index.js').dao | ||
var demo = dao.create('demo') | ||
var demo = require('lark-mvc').dao.create('demo') | ||
demo.getData = function(){ | ||
return 'dao dataServices is loaded!' + '\n' | ||
return 'dao dataServices is loaded!' | ||
} | ||
module.exports = demo |
@@ -1,4 +0,2 @@ | ||
//var dataService = require('lark-mvc').dataService | ||
var dataService = require('../../../index.js').dataService | ||
var demo = dataService.create('demo') | ||
var demo = require('lark-mvc').dataService.create('demo') | ||
demo.getData = function(){ | ||
@@ -5,0 +3,0 @@ return this.daoServices.demo.getData() + '\n' + |
@@ -1,7 +0,5 @@ | ||
//var pageService = require('lark-mvc').pageService | ||
var pageService = require('../../../index.js').pageService | ||
var demo = pageService.create('demo') | ||
var demo = require('lark-mvc').pageService.create('demo') | ||
demo.render = function(){ | ||
return this.dataServices.demo.getData() + 'demo pageService is loaded!' | ||
return this.dataServices.demo.getData() + '\ndemo pageService is loaded!' | ||
} | ||
module.exports = demo |
@@ -5,4 +5,8 @@ var path = require('path'); | ||
/** | ||
* @param options | ||
* @param options.path {string} locate to models, where files which type is js will automate load. | ||
*/ | ||
var larkMVC = function(options){ | ||
//var dirs = DEFAULT_LAYER | ||
if (!options || !options.path) { | ||
@@ -9,0 +13,0 @@ var path = 'models' |
{ | ||
"name": "lark-mvc", | ||
"version": "0.1.1", | ||
"description": "MVC for lark.js", | ||
"version": "0.2.1", | ||
"description": "MVC for building web server with lark.js", | ||
"main": "index.js", | ||
@@ -11,3 +11,3 @@ "directories": { | ||
"scripts": { | ||
"test": "grunt test" | ||
"test": "NODE_ENV=test ./node_modules/.bin/mocha --harmony-generators --require should test/" | ||
}, | ||
@@ -22,3 +22,3 @@ "repository": { | ||
], | ||
"author": "zezhou", | ||
"author": "lark.js Team", | ||
"license": "FreeBSD", | ||
@@ -31,3 +31,8 @@ "bugs": { | ||
}, | ||
"devDependencies": { | ||
"mocha": "^2.0.1", | ||
"should": "^4.4.1", | ||
"supertest": "^0.15.0" | ||
}, | ||
"homepage": "https://www.npmjs.com/package/lark-mvc" | ||
} |
110
README.md
@@ -1,5 +0,89 @@ | ||
MVC for lark.js | ||
MVC for building web server using lark.js | ||
[![NPM version][npm-image]][npm-url] | ||
[![build status][travis-image]][travis-url] | ||
## Features: | ||
* Seperate bussiness codes into `pageService`, `dataService` and `dao`, which accord to `MVC` concept. (`C`in `MVC` implements in `lark-router`). | ||
* Make calling rules between MVC layers. | ||
* Support hook between MVC layers. | ||
## Install: | ||
``` | ||
npm install lark-mvc | ||
``` | ||
## Example: | ||
First of all, import web server and this module in the app. | ||
``` | ||
var larkMVC = require('lark-mvc') | ||
var app = require('lark') | ||
app.use(larkMVC()) | ||
app.run(3000) | ||
``` | ||
Secondely, write `pageService` layer to implement `V` in MVC, which generates html codes by rendering tempalate and data. | ||
``` | ||
var pageService = require('lark-mvc').pageService | ||
var demo = pageService.create('demo') | ||
demo.render = function(){ | ||
var res = '' | ||
co(function *(){ | ||
var categroy = yield this.dataService.demo.getArticles(this.params.id) | ||
var articles = yield this.dataService.demo.getArticles(categroy) | ||
var data = { | ||
'categroy': categroy, | ||
'articles': articles | ||
} | ||
res = yield this.render('demo.html', data) | ||
}) | ||
return res | ||
}) | ||
module.exports = demo | ||
``` | ||
Thirdly, write `dataService` layer to implement `M` in MVC, which collects data from database and passes them to `pageService`. | ||
``` | ||
var dataService = require('lark-mvc').dataService | ||
var demo = dataService.create('demo') | ||
demo.getData = * function(){ | ||
// get data by dao | ||
articles = {} | ||
co (function *(){ | ||
var articles = yeild this.dao.demo.get(this.request.id); | ||
if articles | ||
}) | ||
return articles | ||
} | ||
module.exports = demo | ||
``` | ||
Forthly, write `dao` layer, which is a wrapper of accessing database. | ||
``` | ||
var dao = require('lark-mvc').dataService | ||
var demo = dao.create('dao') | ||
demo.getData = * function(){ | ||
db = redis.conn() | ||
data = db.get('test-key') | ||
return data | ||
} | ||
module.exports = demo | ||
``` | ||
We have all done here. And then, run the app to see the results. | ||
``` | ||
node --harmony app.js | ||
``` | ||
<hr> | ||
一个支持MVC模式的中间件 | ||
@@ -13,8 +97,2 @@ | ||
## Install: | ||
``` | ||
npm install lark-mvc | ||
``` | ||
## 示例: | ||
@@ -84,2 +162,15 @@ | ||
dao 样例: | ||
``` | ||
var dao = require('lark-mvc').dataService | ||
var demo = dao.create('dao') | ||
demo.getData = * function(){ | ||
db = redis.conn() | ||
data = db.get('test-key') | ||
return data | ||
} | ||
module.exports = demo | ||
``` | ||
层之间hook样例: | ||
@@ -93,1 +184,6 @@ | ||
[npm-image]: https://img.shields.io/npm/v/lark-mvc.svg?style=flat-square | ||
[npm-url]: https://npmjs.org/package/lark-mvc | ||
[travis-image]: https://img.shields.io/travis/larkjs/lark-mvc/master.svg?style=flat-square | ||
[travis-url]: https://travis-ci.org/larkjs/lark-mvc |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 3 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
464546
170
11052
187
3
1
7
7