# lcNode
**Repository Path**: lcfms/lcNode
## Basic Information
- **Project Name**: lcNode
- **Description**: node.js模版引擎
- **Primary Language**: NodeJS
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2016-12-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: template-engine
**Tags**: None
## README
#### lcNode简介
lcNode是针对node.js的模板引擎,5分钟包学会,语法介于jsp与smarty之间。作者:老成,本人刚刚接触node.js,看到jade瞬间懵逼,用这玩意还能愉快的写html吗?所以我花了1天时间写出这个模板引擎,不足的地方很多,后面再慢慢增加各种功能,希望大伙多多指教。我还有一个fms(框架管理系统),http://www.lcfms.cn/ 会java的同学可以关注一下,谢谢
QQ群: 348455534
#### 最新版本
1.0.0
#### 1、目录
当前为完整的node.js测试目录,核心模块为node_modules/laocheng/
index.js
template/
compile/
node_modules/
laocheng/(核心模块)
node_modules/(第三方支持模块)
config.json(核心配置文件)
laocheng.js(主文件)
Template.js(模板编译文件)
Variable.js(辅助变量设置文件)
#### 2、安装
将核心模块“laocheng”复制到你node.js的node_modules/目录下。
#### 3、设置模板引擎配置
```json
{
"template_file":"template",(放置模板文件的目录)
"compile_file":"compile",(编译后的模板文件目录)
"extName":".html",(模板文件扩展名)
"dynamic":true,(是否动态监听模板文件是否变化,并自动编译文件)
"permit":{(设置用户组访问权限)
"UI组":[1,2,3,4,5],
"编码组":[3,4,5,6,7],
"测试组":[1,7,8,9,10]
}
}
```
#### 4、控制层引用
```javascript
const T=require('laocheng');
//初始化模板引擎
T.init(__dirname);
```
#### 5、控制层为模板设置参数
```javascript
let data=T.getValObj();
data.put('test',12345);
data.put('abc.tf.a',50);
data.put('list',{a:1,b:2,c:3,d:4,e:5,f:6,g:7});
```
#### 6、视图层编写模板
在“放置模板文件的目录”(默认为template)中新建一个模板文件“index.html”(默认扩展名为.html)
#### 7、控制层调用模板
调用模板需要传两个参数,一个resp为用户请求的response对象,还有一个data是第5步中绑定的数据对象。
```javascript
T.display('index.html',function(M){
M(resp,data);
resp.end('');
});
```
#### 8、标签
直接将参数打印
```javascript
${test}
${abc.tf.a}
```
也可对参数进行操作后打印
```javascript
${test*10}
${abc.tf.a.slice(0,5)}
```
引入文件标签
```html
```
条件判断标签if elseif else
```html
大口大111口的贷款111
大口大口的贷款222
大口大口的贷款333
```
迭代循环标签for
```html
${k1}=>${v1}
```
后端直接使用脚本标签node
```html
(function(){
var a=1;
var b=2;
resp.write(a+b+"
");(可以使用resp.write方法打印结果)
resp.write(test+"
");
})();
```
权限标签permit,即为不同用户组显示不同的内容,在config.json中对用户组进行配置
```html
${PERMIT}显示,该项目id为1
```