thinkjs初试
背景
- 支持http、命令行、Websocket、Restful等多种访问方式
- C(Core)+B(Behavior)+D(Driver)架构
- 高度封装的Model,无需手工写sql语句
- 封装了Db、Session、Cache等功能
- 开发模式下,修改立即生效
npm install -g thinkjs-cmd //可以全局使用thinkjs命令
thinkjs -v //测试是否正确安装
mkdir takeit //创建项目目录
cd takeit //进入项目目录
thinkjs . //初始化项目


- 端口配置,使用不长被占用的端口;安装过程中,存在端口被占用无法正常启动服务的情况;(App/Conf/config.js)
- 数据库配置,配置数据库主机、用户名、密码、数据库以及前缀(App/Conf/config.js)
- 路由配置,由于所创建的项目要求随机生成单一页面,所以需要对路由进行配置(App/Conf/route.js)
- 全局变量配置(www/index.js)
module.exports = {
//配置项: 配置值
port: 1314, //监听的端口
app_group_list: ['Home', 'Admin'], //分组列表
db_type: 'mysql', // 数据库类型
db_host: 'localhost', // 服务器地址
db_port: '3306', // 端口
db_name: 'takeit', // 数据库名
db_user: 'root', // 用户名
db_pwd: '123456', // 密码
db_prefix: '', // 数据库表前缀
};
module.exports = [
[/^\/?(index\/download\/)fileid\/(.*)/, ":1?fileid=:2"],
[/^\/?(index\/download\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/downloadtext\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/uploadtext\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/uploadfiles\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/delfiles\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/lock\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(index\/unlock\/)pageid\/(.*)/, ":1?pageid=:2"],
[/^\/?(.*)$/, "index/index/?pageId=:1"]
]
//定义APP的根目录
global.APP_PATH = __dirname + '/../App';
//静态资源根目录
global.RESOURCE_PATH = __dirname;
global.ROOT_PATH = __dirname;
global.FILES_DIR = __dirname + '/files/';
global.APP_DEBUG = true;
require('thinkjs');
- 由于thinkjs多为异步接口,在使用this.display();的时候需要注意
- this.end()返回的数据为字符串,在返回json数据时,可以使用较为方便的this.sucess()或this.fail(),也可以直接使用this.json();返回想要返回的数据
- 可以使用this.get()或者this.post()或者this.file()接收传递的数据,也可以使用this.download()下载文件等等Controller相关函数(http://thinkjs.org/api/controller.html),也可以使用md5()等全局方法,当然也可以自己在App/Common/common.js进行自定义全局函数(http://thinkjs.org/api/global.html)
- 操作数据库时,可以使用D函数实例化操作数据,具体的操作方法可以参照文档关于数据操作API(http://thinkjs.org/api/model.html)
thinkjs初试的更多相关文章
- thinkjs与Fine Uploader的邂逅
最近在做一个内部系统,需要一个无刷新的上传功能,找了许久,发现了一个好用的上传工具-Fine Uploader,网上也有不少关于它的介绍,对我有不少的启发,结合我的使用场景简单的介绍一下它与t ...
- caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...
- thinkjs——session
工作中又遇到了session问题,于是整理一下有关thinkjs中的session使用小方法: 需要用户登录的网站基本上都离不开 Session,ThinkJS 里默认支持多种类型的 Session, ...
- thinkjs中自定义sql语句
一直以为在使用thinkjs时,只能是它自带的sql语句查询,当遇到类似于这样的sql语句时,却不知道这该怎样来写程序,殊不知原来thinkjs可以执行自定义sql语句 SELECT * from a ...
- 初试Nodejs——使用keystonejs创建博客网站2(修改模板)
上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...
- 项目中初试PHP单元测试
只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...
- VPS -Digital Ocean -初试以及VPN的搭建
首先恭喜你找到这篇博客,它会带你走出困境. 题外话(请忽略):一直以来想搞一个VPS,终于在自己的刺激下试了一下Digital Ocean,还没有使用很长时间不做太多评论,唯一给我的感觉是各种操作还算 ...
- 初试微信小程序
2016年11月3日,微信小程序终于公测了,大家可以正式开发了.早在这之前,应公司要求,和同事就早早的试了一下微信小程序的开发,特此记录一下: 微信官方小程序文档:https://mp.weixin. ...
- ThinkJS 项目用 WebStorm 来设置断点与调试
1. 前置条件.已按ThinkJS 2.0 文档 之 <创建项目> 建好项目. 说明a: 本示例创建项目名为wagang,使用es6配置: thinkjs new wagang --es6 ...
随机推荐
- c语言二维数组变色龙之死字的打印
1 #include <stdio.h> #include <stdlib.h> void main() { ][]= { {'#','#','#',' ','#','#',' ...
- 代理delegate、NSNotification、KVO在开发中的抉择
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation: 2.通 ...
- Laravel-高级篇-Auth-数据迁移-数据填充
(慕课网_轻松学会Laravel-高级篇_天秤vs永恒老师_http://www.imooc.com/learn/702) 一.生成Auth所需文件 在Artisan控制台输入以下命令 php art ...
- [原创作品] RequireJs入门进阶教程
最近我发现RSS采集数据是个很好玩的东西,就是可以直接把别人的数据放在自己的网站上.如果网友们在其他地方发现这篇文章,还是来博客园看吧(http://zhutty.cnblogs.com).这样代码比 ...
- Hacker(23)----破解常见文件密码
Win7中,office文档.压缩文件等都是常见的文件,这些文档含有重要的信息,即使用户为这些文件设置了密码,黑客也会有办法破解. 一.破解office文档密码 破解office文档密码常用工具是Ad ...
- oracle监听服务开启
输入命令netca即可开启oracle的监听服务 弹出对话框 选择监听服务配置,单击下一步 选择增加监听,单击下一步 监听的名字,默认即可,下一步 监听链接的协议,默认TCP协议即可,下一步 监听默认 ...
- .NET基础拾遗(4)委托和事件2
事件 事件是对象发送的消息,以发信号通知操作的发生.操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的. 引发事件的对象称为事件发送方.捕获事件并对其作出响应的对象叫做事件 ...
- sqlite命令
.databases //显示所有数据库 .tables //显示所有表 .schema test //显示创建 test 表的 sql 语句 )备份和还原数据库 .backup E:/db/Stud ...
- Visual Studio 命中断点时 打印信息
打印时间: 开始: {DateTime.Now.ToString()} 结束: {DateTime.Now.ToString()} 搜索 复制
- javascript将毫秒还原为可读时间格式
<script type="text/javascript"> //随便设置一个时间 var otime = new Date("2015-11-11 20: ...