配置
名称 | 类型 | 说明 | 默认值 | 示例 |
---|---|---|---|---|
port | string | 服务器端口这只 | 9000 | |
root | string | 服务器根目录 | __dirname | |
engine | object | 模版渲染引擎,对象里必须包含render 方法(async函数),方法返回展示的字符串。render方法有两个参数,第一个是模版字符串,第二个是模版接受的数据。默认使用ejs模版引擎 |
{render: async function(content,data){return content;}} | |
templateExtension | array | 模版的扩展名称,非模版扩展名的文件一律作为静态文件处理 | [''.html] | |
templateData | objet | 模版对应的数据 | {'/page/index.html':{title: '哈哈哈哈'},'/page/index.html':async function(ctx) {return {title: "嘿嘿嘿嘿"}}} | |
routerData | object | 请求路由数据 | {'/getData':{method:'post',data: async function(param, store, ctx){return param}}} | |
proxy | object | 代理配置 | {'/api':{target:'http://127.0.0.1:9888', pathRewrite: {'/api':''}}} | |
store | array | 数据持久化配置 | [{basePath:__dirname,jsonFile:'data.json'}] | |
https | Boolean | 开启https | false | - |
// 使用方法
const PServer = require('dono-server');
const p = new PServer({
// 端口
port: '9001',
// 服务器根目录
root: __dirname,
// 渲染引擎,默认是ejs,否则的话,给个带有render方法的对象
engine: {
render: async function(content, data) {
return content;
}
},
// 模版扩展名,非此扩展名的,一律认为是静态文件
templateExtension: ['.html'],
// 模版路径对应模版内的数据
templateData: {
'/page/index.html': {
title: '哈哈哈哈'
},
'/page/index2.html': async (ctx) => {
return {
title: '嘿嘿嘿嘿'
};
}
},
// 路径-数据配置
routerData: {
'/getData': {
method: 'post',
data: async function(param, store) {
return param
}
},
'/a.html': {
method: 'get',
data: async function(param, store, ctx) {
await ctx.render('page/index.html');
}
}
},
// 代理请求
proxy: {
'/api': {
target: 'http://39.98.40.201:8080/',
pathRewrite: {
'/api': ''
}
}
},
// 数据持久化
store: [{
basePath: __dirname,
jsonFile: 'data.json'
}]
});
p.store.data.set({
abc: 'abc'
});