1.概述

ThinkJS 是一款使用 ES6/7 特性全新开发的 Node.js MVC 框架,对于之前是纯前端的童鞋,可能不了解MVC框架是什么,不知道后台和前台怎么配合。

本教程以Thinkjs2.2为例。

MVC,就是指Model,View和Controller。

Model是数据层,真正的数据存在数据库里,Model里面要写的获取数据库中的数据 并 对获取到的数据进行一些处理的方法;

View是视图层,对应的文件夹就是根目录下的view文件夹。这块就是前端的范畴了,view里面就放一些html文件,需要注意的是html中需要用到的css样式,js脚本,字体font,图片img等静态资源文件不要放在view文件夹里面,应该放在/www/static里面;

Controller是控制器,逻辑层,调用model层的方法获取数据库中的相关数据,给view层提供前端可调用的方法,进行数据交互。

对应要敲代码的位置分别是哪里

根据文档中的方法创建一个空的thinkjs项目之后(https://thinkjs.org/zh-cn/doc/2.2/create_project.html),可以看到根目录下有src和view这两个文件夹。

在解释m、v和c要写在哪里之前,先来了解下模块的概念;(https://thinkjs.org/zh-cn/doc/2.2/module.html)

整个项目也是以模块的形式来划分,比如todolist,就可以按照功能划分成user(负责用户的登录登出,个人信息等相关操作)和list(待办事项列表的增删查改显示等相关操作)两个模块。Src文件夹下有两个子文件夹common和home,src文件夹下面的每一个子文件夹就代表一个模块,

每个模块有独立的配置(config)、控制器(controller)、视图(view)、模型(model)等文件。

common 模块是个通用模块,该模块下存放一些通用的功能,如: 通用的配置,runtime 目录,启动文件,错误处理控制器等。

注:该模块下的控制器不能响应用户的请求。

Home 模块是新建项目下唯一一个能相应用户请求的模块(新增用户自定义模块的方法参照https://thinkjs.org/zh-cn/doc/2.2/module.html#toc-939),以home模块为例,home文件夹下有config、Controller、logic和model四个子文件夹,config用来写所属模块的配置(https://thinkjs.org/zh-cn/doc/2.2/config.html),Controller就是之前提到MVC中C,写所属模块的逻辑层,controller文件夹下面的每一个js文件就是所属模块下的一个控制器,每个控制器文件里面写***Action方法,用来响应来自前端的请求。

Logic 当在 Action 里处理用户的请求时,经常要先获取用户提交过来的数据,然后对其校验,如果校验没问题后才能进行后续的操作(https://thinkjs.org/zh-cn/doc/2.2/logic.html)。

Model就是之前提到的MVC中的M,写所属模块数据相关操作。Model文件夹下每一个js文件都对应一个数据表(js文件的文件名需与数据库中的数据表名对应),在js文件中就可以写每个数据表相关的操作方法(在使用数据库之前,需要配置Common/config/db.js文件'')。

每个模块对应的视图层view在根目录的view文件夹下。View文件夹下的子文件夹同src一致,都是按模块划分好的。Common中就是一些公共视图文件,其余的都是各自模块所属的视图文件。前端所要用到的css样式,js脚本,字体font,图片img等静态资源文件不要放在view文件夹里面,应该放在/www/static里面;

好了,下面就开始正式的创建项目了。

Thinkjs学习1—概述及MVC的粗略理解的更多相关文章

  1. 。。。在学习新框架Spring MVC的感受。。。

    已经学习一遍Spring MVC了,感觉还是懵懵懂懂的,特别是重定向,路径,参数的这些问题,心好乱,不过,这,都不是问题!!! 继续努力,努力到会为止!!!加油!!!

  2. thinkphp学习笔记7—多层MVC

    原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层 ...

  3. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  4. MVC过滤器简单理解

    之前对于MVC过滤器的理解一直处于很模糊的状态,就在网上找了一些很简单的案例做了一下学习,就找了一个比较容易理解的demo分享给大家. 新建一个MVC4项目,可以在global.asax文件中看到如下 ...

  5. 从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?

    自从小白向师兄学习了李群李代数和相机成像模型的基本原理后,感觉书上的内容没那么难了,公式推导也能推得动了,感觉进步神速,不过最近小白在学习对极几何,貌似又遇到了麻烦... 小白:师兄,对极几何这块你觉 ...

  6. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 【转】

    http://www.cnblogs.com/powertoolsteam/p/MVC_one.html 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会A ...

  7. 关于对FLASH开发,starling、starling feathers、starling MVC框架的理解

    说在前头:楼主之前没有不论什么flash开发经验,仅仅是从一次尝试中总结自己的理解和经验而已.假设有写的不正确的地方,欢迎大家指正. 前一段时间尝试想用flash(as3)又一次制作一下之前做的一个游 ...

  8. 【转载】深度学习中softmax交叉熵损失函数的理解

    深度学习中softmax交叉熵损失函数的理解 2018-08-11 23:49:43 lilong117194 阅读数 5198更多 分类专栏: Deep learning   版权声明:本文为博主原 ...

  9. 学习“迷你ASP.NET MVC框架”后的小结

    看蒋老师MVC的书第二个大收获可以是算是看了这个迷你ASP.NET MVC框架了,虽然它远不如真正ASP.NET MVC(下文简称“MVC”)那么复杂庞大,但在迷你版中绕来绕去也够呛的.这部分我看了几 ...

随机推荐

  1. Jmeter使用代理服务器录制脚本

    Mark一下Jmeter使用代理服务器录制脚本,以备自己可以翻阅,也可以帮助其他人了解一下Jmeter的这个功能.其实录制脚本只是在我们工作中的一个小插曲而已,只是为了能快速看到应用程序跑的逻辑及实现 ...

  2. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  3. Spring源码情操陶冶-AbstractApplicationContext#prepareBeanFactory

    阅读源码有助于陶冶情操,本文承接Spring源码情操陶冶-AbstractApplicationContext#obtainFreshBeanFactory 瞧瞧官方注释 /** * Configur ...

  4. 第一个java——swap()交换方法

    其实这学期的java课开了将近四星期了,加上开学前的小小预习.编写不下于二十几个java了. 可这一有关swap()方法的java确实是首次迷惑不解到处寻求解决的程序. 课堂上老师有关类.方法.对象的 ...

  5. 一台机器启动多个tomcat简单配置

    一台机器启动多个Tomcat只需要解决Tomcat端口冲突的问题. 相关配置:打开 Tomcat 目录下 conf \ server.xml 共修改三处端口,分别是: <Server port= ...

  6. centos 7 下面安装oracle 11g r2 过程分享

    本人对LINUX等很多还不熟悉,如果有不对的地方还请各位指正.谢谢. 打算学习下ORACLE,RMAN备份与还原功能,所以安装了虚拟机,用的是centos7 X86_64-1611版本,oracle用 ...

  7. 基于NFS实现WordPress

    实验内容: (1)主机IP nfs server IP :192.168.29.120 nfs server IP: 192.168.29.110 (2)要求 nfs server共享/data/we ...

  8. 用Django做一个省份选择器

    做一个省份选择器 使用django做后端, mysql数据库, jQuery 列出结构主要的文件, 其它配置比较简单 models.py 因为所有数据的结构基本一致, 把所有省份, 市和区全部存储一张 ...

  9. PocScan的搭建与使用

    安装Docker, 然后下载镜像 $ sudo curl -sSL https://get.daocloud.io/docker | sh $ sudo systemctl start docker ...

  10. github 上传下载代码简单使用

    很长时间,一直认为github很难操作,其实认真学了发现也不是很困难. 主要就3个命令 git clone 建立空间 git push 提交代码,git pull拉取代码. git clone htt ...