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

信阳公司网站建设做无障碍浏览网站

信阳公司网站建设,做无障碍浏览网站,计算机专业培训机构有哪些,青岛注册公司多少钱Sql增删改查 本节使用knex作为sql框架#xff0c;以sqlite数据库为例 准备工作 knex是一个运行在各自数据库Driver上的框架#xff0c;因此需要安装相应的js版数据库Driver#xff0c;如: PostgreSQL - pg, mysql/mariadb - mysql, sqlite - sqlite3… 安装…Sql增删改查 本节使用knex作为sql框架以sqlite数据库为例 准备工作 knex是一个运行在各自数据库Driver上的框架因此需要安装相应的js版数据库Driver如: PostgreSQL - pg, mysql/mariadb - mysql, sqlite - sqlite3… 安装sqlite3依赖 npm install sqlite3安装knex依赖 npm install knex引入依赖 const app express(); const knex require(knex);建议安装一款合适的数据库界面工具笔者使用的是Beekeeper Studio. 创建项目 拷贝第一节HelloWorld的项目 创建sqlite连接 指明client为sqlite3刚刚安装的sqlite3依赖并指明要操作的sqlite数据库路径 const sqlite knex({client: sqlite3,connection: {filename: ./data.db,}, });创建了一个连接实例后会自动创建一个连接池因此初始化数据库只会发生一次 连接配置 sqlite3默认的是单连接如果你希望连接池有更多的连接创建时带上pool: const sqlite knex({client: sqlite3,connection: {filename: ./data.db,},pool: { min: 0, max: 7 } });创建连接池的回调 用于检查连接池是否正常通常不需要这步 pool: {afterCreate: function (conn, done) {//...} }acquireConnectionTimeout 连接超时时间 日志 knex内置了打印警告、错误、弃用和调试信息的日志函数如果你希望自定义日志操作可以在log项里重写它们 log: {warn(message) {},error(message) {},deprecate(message) {},debug(message) {} }数据表 建表 语法: sqlite.schema.createTable(表名, table{表结构}) 添加一个PUT接口监听 127.0.0.1:8080/db/:tbname 根据我们想创建的表名尝试创建一个表注意: sql执行是异步的为了得到结果建议使用 async/await 语法糖当然你就是喜欢地狱回调也不是不行 app.put(/db/:tbname, async function (req, res) {let resultSet null;try {// Create a tableresultSet await sqlite.schema.createTable(req.params.tbname, table {table.increments(id);table.string(uname);table.string(passwd);})// Finally, add a catch statement} catch(e) {console.error(e);resultSet e;};res.json(resultSet); });瞅瞅控制台: sqlite does not support inserting default values. Set the useNullAsDefault flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert).嗯sqlite不支持default不用管他去看数据库反正成功创建了user表你要是加了useNullAsDefault这个flag反而会告诉你 not supported by node-sqlite3 const sqlite knex({client: sqlite3,connection: {filename: ./data.db,}, });删表 语法: sqlite.schema.deleteTable(表名) app.delete(/db/:tbname, async function (req, res) {try {// Delete a tableawait sqlite.schema.dropTable(req.params.tbname);// Finally, add a catch statement} catch(e) {console.error(e);};res.json(null); }); 表记录crud 增 往user表里面插入一条新的记录 app.use(express.json({type: application/json})); app.put(/db/:tbname/record, async function (req, res) {/*前端请求体格式:{uname: evanp,passwd: iloveu}*/let resultSet null;try {// Insert a recordresultSet await sqlite(req.params.tbname).insert(req.body);// Finally, add a catch statement} catch(e) {console.error(e);resultSet e;};res.json(resultSet); });尝试用api调试工具PUT 127.0.0.1:8080/db/user/record携带相应的请求体将会得到[1]这是影响的记录数1代表成功了 查 从user表里查询uname我们刚刚插入的记录 app.get(/db/:tbname/record, async function (req, res) {//前端携带query: unameevanplet resultSet null;try {// select a record where unamexxxresultSet await sqlite(req.params.tbname).select(*).where(uname,req.query.uname);// Finally, add a catch statement} catch(e) {console.error(e);resultSet e;};res.json(resultSet); });尝试用api调试工具GET 127.0.0.1:8080/db/user/record?unameevanp将会得到: [{id: 1,uname: evanp,passwd: iloveu} ]改 接下来我们修改unameevanp这条记录的passwd为123456 app.post(/db/:tbname/record, async function (req, res) {//前端携带query: unameevanp/*前端请求体格式:{passwd: 123456}*/let resultSet null;try {// select a record where unamexxxresultSet await sqlite(req.params.tbname).update(req.body).where(uname,req.query.uname);// Finally, add a catch statement} catch(e) {console.error(e);resultSet e;};res.json(resultSet); });尝试用api调试工具POST 127.0.0.1:8080/db/user/record?unameevanp并携带相应请求体将会得到: [1]这代表影响记录1条成功了 删 接下来我们删除unameevanp且passwd123456的这条记录 app.delete(/db/:tbname/record, async function (req, res) {/*前端请求体格式:{uname: evanp,passwd: 123456}*/let resultSet null;try {// select a record where unamexxxresultSet await sqlite(req.params.tbname).del().where(req.body);// Finally, add a catch statement} catch(e) {console.error(e);resultSet e;};res.json(resultSet); });尝试用api调试工具DELETE 127.0.0.1:8080/db/user/record并携带相应请求体将会得到: [1]这代表影响记录1条成功了 原生sql 当然了如果你需要直接使用sql语句也是可以的调用raw(sqlStr)即可既可以作为某一段sql的绑定也可以直接当作整句sql 格式: knex.raw(sql, [bindings] sqlite.raw(select * from user,[1]).then((resp){//..})在这里不做介绍 总结 以上给出了使用knex实现增删改查的基本操作这些方法并不是唯一的在实际开发中往往要应对更复杂的场景基础crud也是远远不够的 关于knex的更多拓展使用方法请移步knex官方文档https://knexjs.org/guide/ 下一节-Sql-ORM增删改查
http://www.hkea.cn/news/14404613/

相关文章:

  • 徐州丰县建设局网站中信建设有限责任公司项目人员配置
  • 解析网站dns自己做网站和推广
  • 漯河市源汇区网站建设软件开发属于什么专业
  • 做网站小代码大全网站源码如何保存
  • 电子商务网站建设试卷及答案专业外贸网站建设公司价格
  • 怎么写网站建设宣传家乡的网站
  • 二七区建设局网站wordpress可以做电影站
  • 深圳博纳网站建设英迈寰球网站建设
  • 石家网站建设公司排名网站建设 局部放大镜功能
  • 网站仿站大多少钱wordpress页面跳转失败
  • 无线网站制作有哪些做网站好的公司
  • 企业营销策划实现的途径上海市网站seo公司
  • 有哪些做的好看的网站吗做seo网站空间
  • 网站推广是什么杭州seo公司排名
  • p2p提供网站建设违法百度一下官方网
  • wordpress 栏目菜单做网站seo的步骤
  • 莱阳网站建设公司杭州网络营销公司
  • 网站建设和网站推广网站标题title
  • 做网站服装app网络销售推广平台
  • 苏州市吴中区建设局网站wordpress 文章 二维码
  • 网站正在建设中请稍后介绍自己的家乡遵义网站建设
  • 专业商城网站设计wordpress if
  • 网站建设交流平台seo系统培训哪家好
  • 四川省住房和城乡建设厅网站下载怎么在百度做广告
  • 青岛做网站建设深圳优化公司样高粱seo
  • 深圳市研发网站建设哪家好品牌网站建设案例
  • 上海网站备案核验河北专业做网站
  • php 网站调试wordpress 采集站
  • 网站排行大型门户网站建设定做
  • 如何让域名跳转网站百度优化 几个网站内容一样