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

开发企业网站的公司智能模板网站建设

开发企业网站的公司,智能模板网站建设,dede网站改成自适应,自做美食哪些网站tms-koa基于koa的轻量级快速开发框架#xff0c;包含 MVC 中的 M 和 C 两部分#xff0c;适合于实现 API 服务和前后端彻底分离的应用。内置基于 access_token 的访问鉴权机制#xff0c;更容易实现 API 调用的负载分担。内置通过连接池访问 MySQL 数据库#xff0c;支持进…tms-koa基于koa的轻量级快速开发框架包含 MVC 中的 M 和 C 两部分适合于实现 API 服务和前后端彻底分离的应用。内置基于 access_token 的访问鉴权机制更容易实现 API 调用的负载分担。内置通过连接池访问 MySQL 数据库支持进行读写分离。内置 SQL 语句的封装内置 escape 防止 sql 注入。目前 where 条件中existsandor 形成的 sql 不会进行 escape 处理需要在外部自行处理。select 中的 fields 和 table 未进行 escape 处理不能够直接使用用户输入的内容作为字段名和表名。orderby 和 groupby 未做 escape 处理不能够直接使用用户输入。内置支持上传文件。安装npm install tms-koa --save注意tms_dbmongodbmongooseredis 这 4 个依赖包采用peerDependencies不会进行自动安装如果需要使用可以手动安装。tms-db 的依赖包 mysql 和 better-sqlite3 采用peerDependencies不会进行自动安装如果需要使用可以手动安装。测试安装pm2(如果没装过)cnpm i pm2 -g通过pm2启动npm run pm2启动 Redis 和 MongoDbdocker-compose up -d发送获得 token 的请求http://localhost:3001/auth/authorize发送调用 api 的请求http://localhost:3001/api/tryGet?access_tokenvaluehello建立新应用配置信息在项目的根目录下建立文件/config/app.js指定下列信息module.exports {port: 3000,name: tms-koa-0,router: {auth: {prefix: , // 接口调用url的前缀},controllers: {prefix: , // 接口调用url的前缀例如/api},},auth: {captcha: { code: a1z9 },client: { accounts: [{ id: 1, username: user1, password: 123456 }] },jwt: {privateKey: tms-koa-secret,expiresIn: 7200,},},tmsTransaction: false,}路由(router)controllers的prefix 在 url 中出现例如http://localhost:3001/api/tryGet?valuehello但是不在 controller 的路径中出现例如controllers/main.js 为与 url 对应的控制器。认证(auth)auth部分是可选的如果不配置或者disabled设置为true就不启动鉴权机制。支持jwt和redis两种token认证机制都支持用disabled关闭若同时设置jwt优先于redis。redis在项目的根目录下建立文件/config/redis.js指定下列 Redis 连接信息module.exports {disabled: false, // 可选项不需要指定。主要用于开发调试阶段。master: {host: 127.0.0.1,port: 6379,},}关系数据库(mysql 或 sqlite)在项目的根目录下建立文件/config/db.js指定下列 MySQL 或 Sqlite 数据库(可选)连接信息module.exports {mysql: {master: {connectionLimit: 10,host: ,port: ,user: ,password: ,database: ,},write: {connectionLimit: 10,host: ,port: ,user: ,password: ,database: ,},},sqlite: {path: ,},}mongodb在项目的根目录下建立文件/config/mongodb.js指定下列 MongoDb 连接信息module.exports {disabled: false, // 可选项不需要指定。主要用于开发调试阶段。master: {host, // 如果要连接复制集这里是复制集节点的主机地址数组port: 27017, // 如果要连接复制集这里是复制集节点的主机端口数组replicaSet, // 复制集的名称},}注意如果项目要使用 mongodb需要在项目中安装 mongodb 包。mongoose在项目的根目录下建立文件/config/mongoose.js指定下列 mongoose 连接信息module.exports {disabled: false, // 可选项不需要指定。主要用于开发调试阶段。host,port: 27017,database: test,}注意如果项目要使用 mongoose需要在项目中安装 mongoose 包。文件服务文件管理例如保存上传文件module.exports {local: {rootDir: files // 指定保存文件的根目录database: {dialect: mongodb,database:upload,file_table: files},schemas: {$schema: http://json-schema.org/draft-07/schema#,type: object,title: Json-Doc-File,description: tms-vue-finder file,properties: {comment: {type: string,minLength: 0,maxLength: 80,title: 说明1,attrs: {placeholder: 请输入说明,title: 说明1}}}}}}tms-koa 支持保存上传文件的扩展信息。可以指定将信息保存在数据库中例如mongodb。指定的数据库需要在/config/mongodb.js 中存在。启动代码建立文件app.js(可根据需要自行命名)const { TmsKoa } require(tms-koa)const tmsKoa new TmsKoa()tmsKoa.startup()可以在 startup 中添加其他中间件(middleware)例如控制器之前tmsKoa.startup({beforeController:[]})控制器之后tmsKoa.startup({afterController:[]})完成初始化启动 http 和 https 端口之前tmsKoa.startup({afterInit:function(context){}})API 代码建立 controllers 目录防止 API 代码参考内置模块控制器部分。内置模块认证机制在项目的根目录下建立文件/auth/client.js实现一个根据 http 请求 返回Clinet对象的方法。通过调用/auth/authorize获得access_token它的值和client.js返回的对象存在一一对应的关系。获得的access_token会存储在 Redis 中有效期是7200秒。格式为应用名称(app.js 中的 name)内容名AccessTokentoken字符串用户id字符串(来源于 client.js 中指定的 id)中间用:分隔。tms-koa-0:AccessToken:c89d35281105456babd15d94831424c7:userid利用这个机制可以用tms-koa实现一个基于 token 的 api 鉴权中心。通过调用/auth/client用access_token获得用户信息。详细说明参加访问控制控制器(API)项目根目录下创建controllers目录路径和 url 匹配需要从 Ctrl 类继承。const { Ctrl, ResultData } require(tms-koa)class Main extends Ctrl {tmsRequireTransaction() {return {get: true,}}get() {return new ResultData(I am an api.)}}module.exports Main路由与控制器匹配规则tms-koa会根据url自动匹配/controllers目录下的控制器文件。路由格式http://yourhost/{prefix}/{controller}/{method}参数说明prefix/config/app.js文件中router/controlers/prefix中指定的内容。controller和/controllers目录下的文件对应。main.js作为目录中的默认控制如果url匹配的是目录tms-koa会尝试匹配main.js文件。method匹配到的Ctrl对象的方法。参考/lib/controller/router.js文件。模型(model)项目根目录下创建models目录。模型必须从 DbModel 继承。必须在导出包中提供一个用户创建实例的create方法。DbModel类中已经内置一个创建实例的方法的create方法它的子类可参照下面的例子进行调用。const { DbModel } require(tms-koa)class Template extends DbModel {constructor({ db null, debug false } {}) {super(template, { db, debug })}}module.exports { Template, create: Template.create.bind(Template) }已经在 model 层中进行 escape 处理防止 sql 注入。关于 escape 请参考tms_db。静态文件项目根目录下创建public目录。控制器守卫方法在控制器类(Ctrl)中添加方法说明需要在调用接口前执行的代码。async tmsBeforeEach(method) {// 返回ResultFault及其子类的对象终止接口调用// return new ResultFault(发生错误)return true}文件上传和下载domain bucket pathdomain 和 bucket 对用户是不可见的但是要直接访问呢需要在部署阶段创建程序运行后用到的domain例如在files目录下创建tests目录用于保存单元测试产生的文件。在 controllers 目录创建文件 upload.js(可根据需要命名)用于上传文件。const { UploadCtrl } require(tms-koa/lib/controller/fs)class Upload extends UploadCtrl {constructor(...args) {super(...args)}}module.exports Upload在 controllers 目录创建文件 browse.js(可根据需要命名)用于浏览文件。const { BrowseCtrl } require(tms-koa/lib/controller/fs)class Browse extends BrowseCtrl {constructor(...args) {super(...args)}}module.exports Browse记录日志在启动代码中添加如下文件const log4jsConfig require(./config/log4js)const log4js require(log4js)log4js.configure(log4jsConfig)Current Tags0.0.64                                ...           latest (22 days ago)60 Versions0.0.64                                ...           22 days ago0.0.63                                ...           23 days ago0.0.62                                ...           a month ago0.0.61                                ...           2 months ago0.0.60                                ...           2 months ago0.0.59                                ...           2 months ago0.0.58                                ...           2 months ago0.0.57                                ...           2 months ago0.0.56                                ...           2 months ago0.0.55                                ...           2 months ago0.0.54                                ...           2 months ago0.0.53                                ...           3 months ago0.0.52                                ...           3 months ago0.0.50                                ...           4 months ago0.0.49                                ...           7 months ago0.0.48                                ...           7 months ago0.0.47                                ...           7 months ago0.0.46                                ...           8 months ago0.0.45                                ...           8 months ago0.0.44                                ...           8 months ago0.0.43                                ...           8 months ago0.0.42                                ...           8 months ago0.0.41                                ...           8 months ago0.0.40                                ...           9 months ago0.0.39                                ...           9 months ago0.0.38                                ...           9 months ago0.0.37                                ...           9 months ago0.0.36                                ...           9 months ago0.0.35                                ...           9 months ago0.0.34                                ...           10 months ago0.0.33                                ...           10 months ago0.0.32                                ...           10 months ago0.0.31                                ...           a year ago0.0.30                                ...           a year ago0.0.29                                ...           a year ago0.0.28                                ...           a year ago0.0.27                                ...           a year ago0.0.26                                ...           a year ago0.0.25                                ...           a year ago0.0.22                                ...           a year ago0.0.21                                ...           a year ago0.0.20                                ...           a year ago0.0.19                                ...           a year ago0.0.18                                ...           a year ago0.0.17                                ...           a year ago0.0.16                                ...           a year ago0.0.15                                ...           a year ago0.0.13                                ...           a year ago0.0.12                                ...           a year ago0.0.11                                ...           a year ago0.0.10                                ...           a year ago0.0.9                                ...           a year ago0.0.8                                ...           a year ago0.0.7                                ...           a year ago0.0.6                                ...           a year ago0.0.5                                ...           a year ago0.0.4                                ...           a year ago0.0.3                                ...           a year ago0.0.2                                ...           a year ago0.0.1                                ...           a year ago
http://www.zqtcl.cn/news/221006/

相关文章:

  • 深圳网站建设领先天津建设企业网站
  • 网站建设犭金手指C排名15温州 建网站的公司
  • 邢台建设银行官方网站公众号开发者密码是什么意思
  • 网站录入信息 前台查询功能怎么做营销网站主题有哪些内容
  • 网站SEO的评价触屏音乐网站源码
  • 网站开发u盘128够吗网站建设是固定资产嘛
  • 网站域名备案信息wordpress搜索文章内容
  • 出口退税在哪个网站做怎么在一起做网站上拿货
  • 网站友链查询传到网站根目录
  • 网站服务器端口设置北京专业网络直播制作
  • 可以免费做演播的听书网站南京企业自助建站
  • 软件下载类型网站怎么做长沙官网优化技术
  • 药品网站订单源码外贸网站建设服务器
  • 深圳网站制作07551免费开发网站
  • 如何直接用jsp做网站不写servletwordpress模板 单栏
  • 长沙网站建设哪个公司好设计公司网站 唐山
  • 原创小说手机网站制作需要多少钱郴州seo外包
  • 深圳市大鹏建设局网站网站关键词没排名怎么办
  • 水果商城网站制作多少钱c#如何做公司网站
  • 国内做进口的电商网站网站建设的经验做法
  • 蚂蚁搬家公司官方网站免费网站软件制作
  • 搭建网站要用到的工具外链代发免费
  • 肥城网站建设流程oem中国代加工网
  • 到底建手机网站还是电脑网站网站视频怎么做
  • 小区网站建设前端手机网站
  • 做一个网站价格WordPress好看的404
  • 查看注册过的网站在线网站软件免费下载
  • 门户网站建设公司价位域名出售网站
  • 亿级流量网站架构自己制作一个网站
  • 企业网站seo成功案例天津网站建设制作品牌公司