当前位置: 首页 > news >正文

如何自己创建database.js文件来初始化本地sqlite数据库

如何自己创建database.js文件来初始化本地sqlite数据库!下面是一个案例展示,帮助大家,快速的视线,本地sqlite数据库信息初始化。


为了使用 database.js 文件初始化 SQLite 数据库并存储解签内容,你需要按以下步骤操作。这个过程包括创建 SQLite 数据库、建立表格、插入数据以及如何使用这些数据。


1. 确保你的环境已安装 sqlite3 模块

首先,确保你已经在项目中安装了 sqlite3 模块,命令如下:

 

bash

复制代码

npm install sqlite3

2. 创建 database.js 文件

在项目根目录下创建 database.js 文件,功能是初始化 SQLite 数据库并插入一些初始数据(例如解签内容)。

database.js 文件内容:
 

 

javascript

const sqlite3 = require('sqlite3').verbose();
const path = require('path');// 创建或连接数据库(位于项目根目录下的 lottery.db 文件)
const db = new sqlite3.Database(path.resolve(__dirname, 'lottery.db'), (err) => {if (err) {console.error('数据库连接失败:', err.message);} else {console.log('数据库连接成功!');}
});// 创建解签内容表(如果没有的话)
db.serialize(() => {db.run(`CREATE TABLE IF NOT EXISTS lottery_signs (id INTEGER PRIMARY KEY AUTOINCREMENT,sign_number INTEGER NOT NULL,description TEXT NOT NULL)`, (err) => {if (err) {console.error('创建表失败:', err.message);} else {console.log('解签表已创建或已存在');}});
});// 插入解签内容
const insertLotterySign = (signNumber, description) => {const stmt = db.prepare('INSERT INTO lottery_signs (sign_number, description) VALUES (?, ?)');stmt.run(signNumber, description, (err) => {if (err) {console.error('插入数据失败:', err.message);} else {console.log(`第${signNumber}签解签内容已插入`);}});stmt.finalize();
};// 示例:插入解签内容
insertLotterySign(21, "这是第21签的解签内容:好运将至,志向会得以实现。");
insertLotterySign(22, "这是第22签的解签内容:会遇到困难,但不要灰心,坚持就是胜利。");
insertLotterySign(23, "这是第23签的解签内容:未来一片光明,但要保持耐心,凡事不急功近利。");// 关闭数据库连接
db.close();

 

3. 执行 database.js 文件来初始化数据库

  1. 创建 lottery.db 数据库

    • 如果该文件不存在,SQLite 会自动创建 lottery.db 文件并连接。
    • 数据库文件将保存在项目根目录下。
  2. 创建 lottery_signs

    • CREATE TABLE IF NOT EXISTS lottery_signs:如果 lottery_signs 表还没有创建,它会创建该表。这个表包含三列:
      • id:自增的主键。
      • sign_number:签号。
      • description:该签的解签内容。
  3. 插入数据

    • 使用 insertLotterySign 函数,我们手动插入了第 21、22、23 签的解签内容。
在命令行中执行 database.js 文件:

bash

复制代码

node database.js

运行此命令后,程序将会:

  • 创建 lottery.db 数据库文件(如果文件不存在)。
  • 创建 lottery_signs 表(如果表不存在)。
  • lottery_signs 表中插入一些解签内容(示例数据)。

你可以在数据库目录下找到 lottery.db 文件。

4. 验证数据库是否已成功创建

为了确认数据库和表是否已创建,你可以使用 SQLite 的命令行工具,或使用数据库管理工具(如 DB Browser for SQLite)打开 lottery.db 文件并查看表格内容。

如果使用 SQLite 命令行工具,你可以使用以下命令:

 

bash

复制代码

sqlite3 lottery.db

然后查看表格内容:

 

sql

复制代码

SELECT * FROM lottery_signs;

你应该能看到已插入的解签内容。

5. 使用 SQLite 数据库提供数据(例如通过 API)

在上面的步骤中,我们已经设置好了数据库,现在可以通过 API 从前端动态获取这些数据。你可以使用 Express 搭建一个后端服务,让前端从数据库中获取指定签号的解签内容。


 

 

相关文章:

如何自己创建database.js文件来初始化本地sqlite数据库

如何自己创建database.js文件来初始化本地sqlite数据库!下面是一个案例展示,帮助大家,快速的视线,本地sqlite数据库信息初始化。 为了使用 database.js 文件初始化 SQLite 数据库并存储解签内容,你需要按以下步骤操作。…...

【汇编语言】内中断(三) —— 中断探险:从do0到特殊响应的奇妙旅程

文章目录 前言1. do01.1 do0程序1.2 存放字符串,得到完整的程序1.3 分析初步完成的程序1.4 正确的完整程序1.5 分析正确的完整程序 2. 设置中断向量3. 单步中断3.1 什么是单步中断?3.2 CPU为什么要提供单步中断3.2.1 思考一下Debug功能3.2.2 Debug是如何…...

0006.基于SpringBoot+element付费问答系统

适合初学同学练手项目,部署简单,代码简洁清晰; 愿世界和平再无bug 一、系统架构 前端:vue| elementui 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql | maven 二、登录角色 1.管理员 2.用户 …...

SpringBoot feign基于HttpStatus重试

场景 基于springboot开发的项目,对接第三方,第三方的接口有限流策略,某个时间段内有调用频率限制,返回的状态码HttpStatus不是200,而HttpStatus是429。现基于HttpStatus我们发起的重试。 技术点 springbootfeign fe…...

【记录49】vue2 vue-office在线预览 docx、pdf、excel文档

vue2 在线预览 docx、pdf、excel文档 docx npm install vue-office/docx vue-demi0.14.6 指定版本 npm install vue-office/docx vue-demi <template><VueOfficeDocx :src"pdf" style"height: 100vh;" rendere"rendereHandler" error&…...

正则表达式中^的用法

正则表达式中^的用法 1.用法一: 限定开头 文档上给出了解释是匹配输入的开始&#xff0c;如果多行标示被设置成了true&#xff0c;同时会匹配后面紧跟的字符 比如 /^A/会匹配"An e"中的A&#xff0c;但是不会匹配"ab A"中的A 比如(\s|^)表示空字符串或字…...

WPF 关于界面UI菜单权限(或者任意控件的显示权限)的简单管理--只是简单简单简单简单

1.定义你的User类 public class User{public User(){ID ObjectId.NewObjectId().ToString();}public string? ID { get; set; }public string? Account { get; set; }public string? Password { get; set; }public string? PasswordMD5 { get; set; }public AccountType?…...

Https身份鉴权(小迪网络安全笔记~

附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;若有错误欢迎指正&#xff01; 5.2 Https&身份鉴权 引子&#xff1a;上一篇主要对Http数据包结构、内容做了介绍&#xff0c;本篇则聊聊Https、身份鉴权等技术。 …...

AngularJS 输入验证

AngularJS 输入验证 AngularJS 是一个强大的 JavaScript 框架,它允许开发者构建动态的、高性能的 Web 应用程序。在处理用户输入时,确保数据的准确性和完整性至关重要。AngularJS 提供了一套内置的输入验证机制,可以帮助开发者轻松地实现这一目标。 为什么需要输入验证? …...

【网络安全】WIFI WPA/WPA2协议:深入解析与实践

WIFI WPA/WPA2协议&#xff1a;深入解析与实践 1. WPA/WPA2 协议 1.1 监听 Wi-Fi 流量 解析 WPA/WPA2 的第一步是监听 Wi-Fi 流量&#xff0c;捕获设备与接入点之间的 4 次握手数据。然而&#xff0c;设备通常不会频繁连接或重新连接&#xff0c;为了加速过程&#xff0c;攻…...

前端使用xlsx-js-style导出Excel,带样式,并处理合并单元格边框显示不全和动态插入表头解决

一、在学习之前&#xff0c;先给出一些学习/下载地址&#xff1a; xlsx-js-style下载地址 https://github.com/gitbrent/xlsx-js-style 或者 https://www.npmjs.com/package/xlsx-js-style SheetJS中文教程&#xff1a; https://xlsx.nodejs.cn/docs/csf/cell 二、先看样…...

自动化工具ansible部署和实践

1 介绍和部署 1.1 介绍 ansible的功能 我爱你在当今的IT自动化领域&#xff0c;Ansible无疑是一个无法被忽视的重要角色。其便利性和高效性受到了广大开发者和系统管理员的一致好评&#xff0c;成为了配置管理和应用部署的首选工具。然而&#xff0c;对于一些初学者来说&#…...

无人机推流直播平台EasyDSS视频技术如何助力冬季森林防火

冬季天干物燥&#xff0c;大风天气频繁&#xff0c;是森林火灾的高发期。相比传统的人力巡查&#xff0c;无人机具有更高的灵敏度和准确性&#xff0c;尤其在夜间或浓雾天气中&#xff0c;依然能有效地监测潜在火源。 无人机可以提供高空视角和实时图像传输&#xff0c;帮助巡…...

React Fiber

React Fiber 是 React 16 引入的全新重写的协调&#xff08;Reconciliation&#xff09;算法的实现&#xff0c;旨在改善 React 的更新机制和性能&#xff0c;尤其是在复杂应用和大量更新的场景下。它使得 React 更加灵活、可调度&#xff0c;能够实现优先级控制和中断更新等特…...

【前端】JavaScript 中的 map() 方法:高级解析与应用

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;map() 方法的定义与核心特性1.1 方法定义1.2 主要特性 &#x1f4af;map() 方法的语法与高级用法2.1 基本语法2.2 简化写法与箭头函数2.3 结合链式操作 &#x1f4af;ma…...

《智能体开发实战(高阶)》四、系统化的日志周报智能体开发计划

智能体扩展与完善规划 为了将前几个章节的智能体逐步扩展为支持整个公司团队使用的高效工具,以下是分阶段的完善与扩写规划。每个阶段旨在提升功能覆盖范围、处理能力和用户体验,并为企业提供实际价值。 阶段一:基础功能完善 目标:巩固现有功能,提升健壮性和适用性。 支…...

什么是Apache日志?为什么Apache日志分析很重要?

Apache是全球最受欢迎的Web服务器软件&#xff0c;支持约30.2%的所有活跃网站。凭借其可靠性、灵活性和强大的功能&#xff0c;Apache数十年来一直是互联网的中坚力量。 一、Apache Web服务器的工作原理 Apache Web服务器的工作原理如下&#xff1a; 接收HTTP请求&#xff1…...

Mybatis——(2)

2.2 Mybatis 工具类&#xff08;了解&#xff09; 为了简化MyBatis的开发&#xff0c;可将MyBatis进一步封装。 import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apa…...

景联文科技入选中国信通院发布的“人工智能数据标注产业图谱”

近日&#xff0c;由中国信息通信研究院、中国人工智能产业发展联盟牵头&#xff0c;联合中国电信集团、沈阳市数据局、保定高新区等70多家单位编制完成并发布《人工智能数据标注产业图谱》。景联文科技作为人工智能产业关键环节的代表企业&#xff0c;入选图谱中技术服务板块。…...

修改浏览器地址栏参数

Vue 修改当前页面地址栏参数 function updateUrlParameter(param: string, value: string) {const url new URL(window.location.href); // 获取当前页面的 URL// 解析哈希部分const hash url.hash ? url.hash.slice(1) : "";const [path, queryString] hash.sp…...

大规模模型训练卡在92%?PyTorch 3.0静态图分布式调试全流程:从Graph IR Dump到Device Placement热力图分析

第一章&#xff1a;PyTorch 3.0静态图分布式训练全景概览PyTorch 3.0 引入了原生静态图编译能力&#xff08;TorchDynamo Inductor 后端深度集成&#xff09;&#xff0c;结合 torch.distributed 的增强型 SPMD&#xff08;Single Program, Multiple Data&#xff09;抽象&…...

Memfit AI 渗透测试智能体,到底能不能打?

深度测评&#xff1a;Memfit AI 渗透测试智能体&#xff0c;到底能不能打&#xff1f; 写在前面&#xff1a;这篇文章我写了整整一周&#xff0c;从安装部署到实际测试&#xff0c;把 Memfit AI 这个号称"下一代 AI 渗透测试平台"的工具从头到尾摸了一遍。先说结论&a…...

森利威尔SL3073替代RT2862 4-65V超宽压3A降压芯片

在电源管理领域&#xff0c;寻找高效、可靠且功能丰富的DC-DC转换器是设计工程师们不懈追求的目标。当面临将36V电压转换为更低电压并保持3A持续输出电流的应用场景时&#xff0c;传统上可能会选择如RT2862这样的同步降压转换器。然而&#xff0c;随着技术的不断进步&#xff0…...

告别网络限制!哔咔漫画离线下载神器使用全攻略

告别网络限制&#xff01;哔咔漫画离线下载神器使用全攻略 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mirrors…...

从脉冲到CAN总线:一文搞懂Emm42 V5.0步进闭环驱动的四种控制方式(含Arduino/PLC接线示例)

从脉冲到CAN总线&#xff1a;Emm42 V5.0步进闭环驱动的四种控制方式深度解析 在工业自动化和嵌入式开发领域&#xff0c;步进电机的精确控制一直是工程师们关注的重点。Emm42 V5.0步进闭环驱动器作为新一代高性能驱动解决方案&#xff0c;凭借其丰富的控制接口和先进的FOC矢量…...

MCP23009 I²C GPIO扩展芯片驱动设计与实战

1. MCP23009通用I/O扩展芯片驱动库深度解析与工程实践MCP23009是Microchip公司推出的8位IC总线可编程通用输入/输出&#xff08;GPIO&#xff09;扩展器&#xff0c;专为资源受限的嵌入式系统设计。该芯片通过标准IC接口&#xff08;支持标准模式100 kHz和快速模式400 kHz&…...

阶跃星辰新版模型上线,Token 消耗最高降 56%

4 月 2 日消息&#xff0c;阶跃星辰新版模型 Step 3.5 Flash 2603 正式上线并向 Step Plan 用户开放。该模型优化升级&#xff0c;带来核心改进&#xff0c;Token 消耗最高降 56%。新版模型正式上线阶跃星辰宣布新版模型 Step 3.5 Flash 2603 上线&#xff0c;向所有 Step Plan…...

LLaMA3核心技术深度拆解:从架构革新到高效训练的实战密码

1. LLaMA3的架构革新&#xff1a;为什么这些设计能改变游戏规则 当Meta发布LLaMA3时&#xff0c;最让我惊讶的不是参数规模&#xff0c;而是那些看似微小的架构调整带来的巨大性能提升。作为经历过BERT到GPT-3时代的老兵&#xff0c;我见证过太多"暴力堆参数"的失败案…...

别再手动调样式了!用WangEditor的Menu API在Vue3里打造你的专属工具栏

深度定制WangEditor&#xff1a;用Menu API在Vue3中构建企业级富文本生态 当我们需要在Vue3项目中集成富文本编辑器时&#xff0c;WangEditor以其轻量级和高度可定制性成为许多开发者的首选。但真正发挥其威力的关键在于深入理解其Menu API系统——这套机制允许我们突破默认功能…...

解决Ubuntu中libc6-dev:i386依赖问题的完整指南

1. 理解libc6-dev:i386依赖问题的本质 当你正在愉快地使用Ubuntu系统&#xff0c;突然在执行sudo apt-get upgrade时遇到一堆红色错误提示&#xff0c;特别是看到"libc6-dev:i386 : 依赖: libc6:i386 ( 2.31-0ubuntu9.14) 但无法安装它"这样的报错&#xff0c;是不是…...