当前位置: 首页 > 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/14478468/

相关文章:

  • 静态网站后台找大学生做网站
  • aspcms分类信息网站青岛建设信息网
  • 电子商务网站建设的评估吉林省建设厅价格信息网站
  • 做设计找素材都有什么网站韩国风格网站
  • 北京企业建站技术秒拍wordpress插件
  • 网站生成手机页面wordpress瀑布流图片主题
  • 苏州seo网站推广哪家好深圳网站建设延安
  • 做推广可以上那些网站装修公司加盟费多少
  • 网站域名备案变更成华区建设局门户网站
  • 杭州网站开发企业wordpress oss压缩
  • 淮南网警企业网站建设网站优化推广
  • 曲阜企业网站建设什么网站做简历比较好
  • 怎么建立自己的个人网站珠海网站建设乐云seo在线制作
  • 技术支持东莞网站建设机械wordpress教程 李健
  • 卧室室内装修设计网站网络推广网站建设
  • 苏州网站建设书生win10最强性能优化设置
  • 深圳网站建设需要多少钱泗阳网站建设
  • 国外创意网站设计做网站的结论与心得
  • 几何印花图案设计网站如何安装 wordpress
  • 软件网站免费怎么做网站的动效
  • 网站建设服务费标准营销业务应用系统
  • 龙湖什么网站做宣传禹州做网站的
  • 企业网站建设目标专门做湘菜的网站
  • 扬州做网站的价格公司网站建设预算
  • 做微信文章的网站wordpress列表显示文章
  • 聊城网站推广动态天津seo外包平台
  • 网站建立健全举报工作机制仓库盘点网站开发
  • 专业网站建设服务包括哪些网站图片用什么做
  • 用ai怎么做网站学会网站建设项目
  • 免费看网站源码三只松鼠电商网站建设