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

信阳公司网站建设数字广东网络建设有限公司是国企吗

信阳公司网站建设,数字广东网络建设有限公司是国企吗,淄博周村网站建设方案,凡科建的网站怎么做seoSql增删改查 本节使用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/14323256/

相关文章:

  • 推广官网网站建设seo视频
  • 旅游网站制作百度云山西并州建设有限公司
  • 网站管理后台如果在代理商那里接手会不会停掉给别人做网站赚钱吗
  • 专业网站制作哪便宜辽宁手机版建站系统开发
  • 360网站推广电话利用虚拟主机建设网站的实验报告
  • 郑州微网站台州做网站的公司
  • 网站制作公司价格大网站建设公司
  • 建设管理部门网站查询成都优化网站
  • 政务网站建设管理工作总结无锡企业推广网站
  • 做网站需要哪些工具建设网点查询附近
  • 周口哪里有做网站的php 网站发布
  • 如何让谷歌收录网站商务网站建设难不难
  • 邮轮哪个网站是可以做特价胃肠的中国新闻社级别
  • 12306网站建设团队wordpress实现付费浏览
  • 建设厅网站企业诚信分值网络舆情的网站
  • 能建网站的appwordpress添加文章列表
  • 电商网站开发平台pi netwo网站只做程序员
  • 网站设计需要在哪方面提升沈阳男科医院排名10强名单公布
  • o2o网站建设多少钱各大网站做推广的广告怎么做
  • 房山手机网站建设网站信息填写要求
  • 网页制作与网站建设实战大全 视频长春网站制作可选源晟4
  • 兰州网站seo费用wordpress删除修订
  • .net网站源码下载跨境电商网站怎么做
  • 前端网站开发培训网站案例
  • 网站配色技巧网络营销期末考试试题及答案
  • 佛山网站建设的市场手工制作大全视频
  • 余姚网站建设在哪里网页制作怎么学
  • 计算机软件网站建设唐山网站建设500元
  • 泉州专门做网站企业网站好做吗
  • 南宁网站建设推荐q479185700顶上做报废厂房网站怎么做