完成模板引擎的安装

v1
宇天 2020-09-27 19:40:09 +08:00
parent 6aca3e2695
commit e6af5e6b1f
4 changed files with 14 additions and 40 deletions

View File

@ -40,6 +40,11 @@ export default {
name: 'no-reply', name: 'no-reply',
passwd: '' passwd: ''
}, },
views: {
enabled: true,
dir: '',
ext: '.htm'
},
cors: { cors: {
enabled: false, enabled: false,
credentials: false, credentials: false,

View File

@ -12,13 +12,12 @@ import fs from 'iofs'
import Request from '@gm5/request' import Request from '@gm5/request'
import Response from '@gm5/response' import Response from '@gm5/response'
import Views from '@gm5/views'
import { sessionPackage, sessionConnect } from '@gm5/session' import { sessionPackage, sessionConnect } from '@gm5/session'
import { jwtPackage, jwtConnect } from '@gm5/jwt' import { jwtPackage, jwtConnect } from '@gm5/jwt'
import config from './config/index.js' import config from './config/index.js'
import Views from './lib/views.js'
import Routers from './middleware/router.js' import Routers from './middleware/router.js'
import Cors from './middleware/cors.js' import Cors from './middleware/cors.js'
@ -27,7 +26,7 @@ function hideProperty(host, name, value) {
value: value, value: value,
writable: true, writable: true,
enumerable: false, enumerable: false,
configurable: true, configurable: true
}) })
} }
@ -44,10 +43,8 @@ export default class Five {
session.domain = session.domain || domain session.domain = session.domain || domain
this.set({ domain, session }) this.set({ domain, session })
// 用户没手动安装模板引擎时, 才会安装内置的伪引擎 // 安装模板引擎
if (!this.$$views) { this.install(Views)
this.install(Views)
}
// 将jwt & session中间件提到最前 // 将jwt & session中间件提到最前
// 以便用户自定义的中间件可以直接操作session // 以便用户自定义的中间件可以直接操作session
@ -116,7 +113,7 @@ export default class Five {
var list = fs.ls(dir) var list = fs.ls(dir)
if (list) { if (list) {
list.forEach((item) => { list.forEach(item => {
var { name } = path.parse(item) var { name } = path.parse(item)
if (name.startsWith('.')) { if (name.startsWith('.')) {
return return
@ -127,7 +124,7 @@ export default class Five {
item = path.join(item, './index.js') item = path.join(item, './index.js')
} }
this.__MODULES__[name] = import(item).catch((err) => { this.__MODULES__[name] = import(item).catch(err => {
return { default: null } return { default: null }
}) })
}) })
@ -143,7 +140,7 @@ export default class Five {
this.__main__() this.__main__()
server = http.createServer(function (req, res) { server = http.createServer(function(req, res) {
var request = new Request(req, res) var request = new Request(req, res)
var response = new Response(req, res) var response = new Response(req, res)
@ -158,7 +155,7 @@ export default class Five {
if (fn) { if (fn) {
;(async function next() { ;(async function next() {
await fn.call(_this, request, response, function () { await fn.call(_this, request, response, function() {
fn = middleware.shift() fn = middleware.shift()
if (fn) { if (fn) {
next() next()

View File

@ -1,29 +0,0 @@
/**
* 简单的模板渲染, 用于在不需要smarty这种重量级模板引擎的时候
* 可以兼容smarty的api
* @author yutent<yutent.io@gmail.com>
* @date 2020/09/24 16:41:31
*/
import fs from 'iofs'
import path from 'path'
export default {
name: 'views',
install() {
//
var updir = this.get('VIEWS')
return {
assign() {
//
},
render(file, noParse) {
var filePath = path.join(updir, file)
var buf = fs.cat(filePath)
return Promise.resolve(buf)
}
}
}
}

View File

@ -11,6 +11,7 @@
"@gm5/response": "^1.3.1", "@gm5/response": "^1.3.1",
"@gm5/controller": "^1.0.0", "@gm5/controller": "^1.0.0",
"@gm5/jwt": "^1.1.0", "@gm5/jwt": "^1.1.0",
"@gm5/views": "^1.0.0",
"crypto.js": "^2.0.2", "crypto.js": "^2.0.2",
"es.shim": "^2.0.1", "es.shim": "^2.0.1",
"iofs": "^1.5.0" "iofs": "^1.5.0"