您当前的位置: 首页 >  sql

qianbo_insist

暂无认证

  • 0浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

thinkjs使用sqlite

qianbo_insist 发布时间:2021-03-14 21:52:42 ,浏览量:0

1、thinkjs 创建项目

thinkjs 确实做得还是很到位,总体很好用,虽然是包装框架,但是各方面都考虑到了。这个比较好的工具可以快速让前台人员做后台服务,但是大部分人使用的时候都是用mysql,对于一个demo安装部署来说,再建立mysql的环境只有一个问题:太慢,如果想立刻使用,就是先要抛弃部署数据库的事件。

打开git command , 输入

npm install -g think-cli

创建一个demo

thinkjs new demo; cd demo; npm install; npm start; npm install think-model-sqlite

注意不要使用cnpm,这个安装很多东西会出问题,例如不调用编译

2 、thinkjs增加

再在adapter.js中增加

const sqlite = require('think-model-sqlite');

exports.model = {
  type: 'sqlite',
  sqlite: {
    handle: sqlite, // Adapter handle
    path: path.join(think.ROOT_PATH, 'db'), // sqlite 保存的目录
    database: 'test', // 数据库名
    connectionLimit: 1, // 连接池的连接个数,默认为 1
    prefix: '', // 数据表前缀,如果一个数据库里有多个项目,那项目之间的数据表可以通过前缀来区分
  }
}

使用sqlite administrator 等创建两个表,放在db下面 user rtspinfo 两个表,如下图所示 在这里插入图片描述

model里面创建一个user.js,一个rtspinfo.js,什么都不做,写入代码

module.exports = class extends think.Model {};
3、thinkjs controller

controller 里面创建两个文件 user.js rtspinfo.js rtpinfo.js 里面写入代码

const Base = require('./base.js');
module.exports = class extends Base {
    async indexAction() {
         const rtspinfo = this.model('rtspinfo'); // controller 
         const data = await rtspinfo.select();
            //this.assign('title', data /*{ "name": "qianbo" }*/);
            //return this.display();
        return this.success(data);
    }
    test2Action() {
         return this.success("rtspinfotest2");
    }
};

写完thinkjs会自动编译到app里面,到浏览器里面访问

http://127.0.0.1:8360/rtspinfo/ http://127.0.0.1:8360/rtspinfo/test2 分别会返回数据库里的数据和自己写入的数据

访问get方式返回数据

这种方式是界面和代码分离的方式,如果想使用view视图和数据绑定,也是可以的 建立一个view视图rtspinfo_address.html





    
    摄像头地址


    
        ID号码地址
        
            {{title[0].ID}}
            {{title[0].address}}
        
    


在controller里面加入一个函数

async addressAction() {
        const rtspinfo = this.model('rtspinfo'); // controller 
        const data = await rtspinfo.select();
        this.assign('title', data);
        return this.display();
}

访问浏览器

http://127.0.0.1:8360/rtspinfo/address 在这里插入图片描述

该表格不过是没有样式,但是数据已经显示,这样,一个前台人员既可以做后台,也可以做前台。这是nodejs的优点

4、把循环加上



    
    摄像头地址


    {{title[0].ID}},{{title[0].address}}
    
        ID号码地址
        {% for item in title %}
        
            {{item.ID}}
            {{item.address}}
        
        {% endfor %}
    


在这里插入图片描述 结果就是所有数据都出来了。

5、总结

其实这个同样适用于mysql,甚至可以使用多种数据库

const rtspinfo = this.model(‘rtspinfo’,‘sqlite’); // controller const rtspinfo = this.model(‘rtspinfo’); // controller

在控制器里是可以切换的,而model层不用大的变化,控制层添加,删除等等都很方便

const Base = require(’…/base.js’); module.exports = class extends Base { modifyAction() { this.model(‘rtspinfo’).where({ID:“1”}).update({memo:“1号公路上”}) this.success(“修改成功”) } }; 在这里插入图片描述 再次访问,html中增加一列memo,发现已经修改了数据,非常简单方便,在架设demo的过程中,不用架设mysql数据库,等需要的时候,再修改成mysql就行,如果您搞不清楚,请在下面下载: thinkjs使用sqlite demo

关注
打赏
1663161521
查看更多评论
立即登录/注册

微信扫码登录

0.0563s