手把手教你用express + mysql + knex 做个 todoList

node + express + knex连接MySql数据库实现图片上传等 立即下载

成果展示

项目源代码地址见git,在routes下找todolist
这里写图片描述

启动mysql,用knex连接数据

终端运行

mysql.server start

看到“starting mysql SUCCESS!”,把服务启动起来后,再新开一个终端窗口,用root登录

mysql -u root  //  显示welcome to the MySQL monitor
show databases   
use example   //例子中用到了example这个database

knex是一个npm包,用于node.js下连接mysql。

连接mysql

var knex = require('knex')({
    client:'mysql',
    connection:{
        host:'localhost',
        user: 'root',
        password: '',
        database: 'example'
    }
})

接口功能拆分

建表:创建任务列表

function createToDoList() {
    return 
    knex.schema
    .hasTable('todolist')
    .then( ifExist => {
        if(!ifExist){
            return knex.schema.createTable('todolist', (table) =>{
                table.increments('task_id').primary()
                table.string('task_name').notNullable()
                table.integer('task_status').notNullable().defaultTo(0)
                table.dateTime('task_start_date')
                table.dateTime('task_end_date')
            })
        }
    })  
    .catch( err => {
        console.log('error !!!', err.message, err.stack)
        return
    })
}

查询任务列表

状态分为0(未完成)和1(已经完成),分别保存在两个数组里。

async function getTasks(){
    var toDoTasks = await knex('todolist').select().where('task_status', 0)
    var finishedTasks = await knex('todolist').select().
knex-express-project-sample:使用Express和Knex的示例项目结构 Knex / Express项目样本 这是同时使用Express和Knex的示例项目结构。 它假定使用Postgres数据库创建“服务器” JSON API,并在users和projects之间创建基本关系,以演示如何仅使用Knex和纯JS来建模这种简单的数据结构。 如果您喜欢这种架构,那么您可能也喜欢 ,这是我正在作为这些想法的一种更具体的实现而努力的东西:) 资料夹结构 /config database.js -- loads the knexfile using settings for the current environment /db /migrations /seeds /server /controllers -- business logic for handling API endpoints project_controller.js 立即下载

相关推荐

boilerplate-knex:使用Express和Knex.js的简单样板

样板:Knex.js 第一阶段样板项目,其中包括: 表示 纳克斯 SQLite3 快速车把 人体解析器 笑话 Nodemon 安装 npm install npx knex migrate:latest npx knex seed:run npm run dev 确保也签出其他npm脚本。

knex-express-rest

knex-express-rest dynamic rest api without any schema. Node.js version >= 8 猜想已验证。 多个列名可用,分割,也可用*查询所有列 其它用法待扩充 TODO:where(>,<, is not null...) / limit inspired by GraphQL and and and

table-reservation:使用Express,Knex和MySQL的简单NodeJS表保留后端API

餐桌预订 使用Express,Knex和MySQL的简单NodeJS表保留后端API 要求: 节点JS MySQL #启动并运行: cd ~/Desktop git clone git@github.com:olehmelnyk/table-reservation.git cd table-reservation npm run firstrun 服务器应在localhost:3000上启动 #REST ### GET / api / reservations /:id按ID返回预订 { "id" : 234 , "table_id" : 1 , "reservation_start" : "2019-10-10T21:10:00.000Z" , "reservation_end" : "2019-10-10T21:15:00.000Z"

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 827

2D激光slam四种算法建图效果对比

2d激光slam四种算法建图比较

m0_73791170的博客 8446

2. Netty使用JSerialComm进行串口读取(二)

现在开始处理这些问题 第一个问题:串口读取超时异常一路传播到最后也没有处理。 ​ 第二个问题:即使处理了该异常,程序仍然退出,这不能满足一些实际使用要求需求。该问题与设置很长的读取超时时间没关系,无论多长到时间后总会退出。

s3c2410的博客 2461

大模型系统构建的“三驾马车”——Prompt、Context与Harness工程

在LLM应用开发的早期阶段,我们热衷于比拼“提示词”的精妙程度。那时,一个精心构造的思维链CoT就能让模型的表现提升10%以上。随着大模型从“玩具”走向“生产系统”,我们逐渐意识到:单一的 Prompt 只是起点,而非终点。 真正的工业级应用,需要构建一套三层递进的工程体系——Prompt Engineering、Context Engineering 和 Harness Engineering。

西木风落 604

Mind+掌控板实战:5分钟搞定Easy IoT的MQTT通讯(附完整代码)

本文详细介绍了如何利用掌控板和Mind+图形化编程软件,快速实现基于Easy IoT平台的MQTT通讯。通过清晰的步骤讲解和完整的代码示例,指导用户完成从云端配置、Wi-Fi连接到MQTT消息发布与订阅的全过程,帮助初学者轻松构建物联网设备间的双向对话系统。

weixin_29300241的博客 445

1.5 RAG技术栈全景图:LangChain vs LlamaIndex深度对比,选错框架后悔3年,一文帮你选对

摘要:LangChain与LlamaIndex框架深度对比 本文全面对比了RAG领域两大主流框架LangChain和LlamaIndex。LangChain是通用AI应用框架,具有模块化设计和丰富生态;LlamaIndex专为RAG优化,提供开箱即用解决方案。功能对比显示,LangChain在文档加载和Agent支持方面更强,而LlamaIndex在检索策略、向量存储和多模态处理上表现更优。代码示例展示了二者实现RAG的不同方式:LangChain需要更多配置但灵活性高,LlamaIndex则提供更简洁的A

yonggeit的博客 3237

想在 Visual Studio Code 里进行 ABAP 开发,需要安装的扩展列表

安装完毕后,我们可以将 SAP 系统配置为 Visual Studio Code 连接的远程文件系统。为了连接到 SAP 系统,需要启用 ABAP 开发工具 (ADT) ICF 节点,这与 SAP Hana Studio 等工具使用的服务相同。打开 SAP GUI 并连接到目标系统,运行事务 SICF,然后激活 ADT_SRV 服务,如下所示。这启用了允许代码编辑器和 IDE 连接到 SAP 系统的服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3113

Dify基础:Dify平台的本地化部署(含windows部署中,常见问题及解决方案)

第一种比较简单,只需要在浏览器中,打入https://dify.ai/就可以。这个指令虽然看起来简单,但实际上涉及到对docker的使用。这个项目既然有github地址,那它一般就是开源的。我们点开这个github地址,便能看到dify的私有化部署方式。我们可以看到,还是上面那个图,有个按钮,是指向该项目的Github地址的。第二步:按照dify的github给出的指令,对dify进行安装。第一步:我们把dify下载到自己的电脑(或者服务器)上。这里,我们只考虑第二种方式,也就是私有化部署。

xiezhipu的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 为了全局设MongoDB的路径,mac下修改bashrc来配环境变量的心酸历程
下一篇: node.js 的 模块加载机制和server端hot reload热加载实践
十方魔
博客等级 码龄10年 202粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值