node package manager

ee6m

EE6M是什么?

EE6M是一个基于express的框架, EE6M对express进行了封装, 使用ES6语法进行编程的, 同时EE6M将表单操作进行了处理, 因此在编辑代码的过程中不必关心表单数据, 直接使用即可。

使用EE6M可以免去Express中很多不必要的工作,以快速搭建你的Nodejs服务器。

#安装

使用如下的命令进行安装:

npm install ee6m --save

#快速开始

EE6M已经对express进行了处理, 因此可以很方便的创建一个服务器。

1、新建一个js文件,这里以index.js为例。

2、导入ee6m,同时导入path以进行路径处理。

let path = require('path');
let {ee6m} = require('ee6m');

3、创建服务器

let app = ee6m({
    //静态资源目录 
    staticPath: path.join(__dirname, './public'),
    //视图目录 
    viewPath: path.join(__dirname, './views'),
    //路由定义 
    routes: {
        'Index': require('./routes/Index')
    }
});

4、创建一个路由,这里我们使用上面配置项中的Index为例

//导入eem6的路由类 
let {Route} = require('ee6m');
 
//创建一个类并继承自Route 
class Index extends Route {
    //这是"/"路由访问的方法 
    index({res}) {
        //这里渲染index模板,模板的使用同express,这里不再赘述 
        res.render('index');
    }
    //这里简单的返回一个json 
    sayHello({res}, {name}) {
        res.json({text:`Hello! My name is ${name}`});
    }
}
//将路由导出 
module.exports = User;

5、开启服务

node ./index.js

说明:如果在package.json文件中配置了start命令,可以通过npm start运行

6、完成。

打开浏览器,输入localhost:3000/Index看看模板是不是渲染出来了,

再输入localhost:3000/Index/sayHello看看是不是出现了一个json字符串

#创建服务器

通过 ee6m(option)可以快速创建一个服务器,下面针对option中的各个配置进行说明

port

可选、指定服务器监听的端口,默认3000

protocol

可选、要使用的协议,可以是http或https

privateKey

如果protocol为https则必填,https私钥文件路径

certificate

如果protocol为https则必填,https证书文件路径

cors

可选、指定是否开启跨域访问,默认false

cachePath

可选、指定文件上传的缓存目录,默认/tmp/ee6m

staticPath

必须、静态资源目录。
我们可以将我们的图片资源、样式、浏览器js脚本等静态资源放在该目录下直接访问

viewPath

必须、视图文件目录

viewEngine

可选、视图引擎,默认为hbs引擎

styleSheet

可选、要使用的样式,默认为less

routes

必须、路由列表,如果传入的是空对象,则服务器始终返回404

#路由

在EE6M中,所有的路由都是Route的子类, 只要集成了Route,并添加到服务器配置的routes对象中即可访问, 访问方法为:

http://网址:端口/路由名称/方法名称

路由方法接受3个参数:

第一个于express路由中的参数相同,为 {req:xxx, res:xxxx, next:xxx}

第二个为表单数据,形如:{userName:'小明', age:14, ... ...}

第三个为请求方式,有GET、POST、PUT、DELETE四种

通过ES6的解包可以很简单的得到,例如:

createUser({req, res, next}, {userName, userAge, userHead:[head]}, method){
    //TODO 
    //此处对userHead进行说明: 
    //对于上传的文件,EE6M会将文件处理为 字段名称=>文件列表 的格式 
    //如果是多文件上传,直接使用字段名称就能得到文件列表。 
    //如果是单文件上传,将第一个文件进行解包即可 
}

上面的写法于下面的写法是一样的,只是使用的是ES6语法,使得写起来更简洁易懂

createUser(route, fields, method){
    var req = route.req;
    var res = route.res;
    var next = route.next;
    
    var userName = fields.userName;
    var userAge = fields.userAge;
    var userHead = fields.userHead[0];
    
    //TODO 
}