Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

一个 node mvc 与 REST 小框架

$
0
0

面向对象的 mvc 小程序 源码

mvc

var YNode = require('ynode');

new YNode({
    'id': 1,
    'debug': true,
    'appPath': __dirname + '/app',
    'assets': 'public'

}).listen(8080, function(){
    console.log('listen on 8080');
});

REST

// 增加 useRestful 参数启用 RESTful
var app = new YNode({
    'id': 1,
    'debug': true,
    'appPath': __dirname + '/app',

    'useRestful': true
});
app.listen(8090, function(){
    console.log(8090)
});

// get 路由 并指定 id 参数必须为数字
YNode.WebRestful.get('/abc/{id:\\d+}', function(req, res, id){
    var r = new YNode.WebRequest(req);

    console.log(r.getQueryString('id'));
    console.log(id);

    res.end('api get');
});

// 多方法路由 id 参数可为字母或数字
YNode.WebRestful.addRoute(['GET', 'POST'], '/def/{id:}', function(req, res, id){
    res.end(id);
});

// 使用 app/api/User 类的 index 方法处理请求
YNode.WebRestful.get('/xyz/{id:}', 'app/apis/User@index');

// 其中 User 的定义如下
'use strict';
class User {
    index(req, res, id) {
        res.end(id);
    }
}
module.exports = User;

理论上express使用的中间件 本程序也可以使用 但是没详细测试

比如 body-parser YNode.Hook.getInstance().addHook(bodyParser.urlencoded({ extended: false }));


Viewing all articles
Browse latest Browse all 14821

Trending Articles