首页 > 其他分享 >Strapi的使用笔记

Strapi的使用笔记

时间:2024-03-07 23:24:00浏览次数:23  
标签:const Strapi existingUser 使用 db 笔记 strapi yarn error

Strapi使用

安装与使用

我的电脑配置信息

(93条消息) strapi安装指南_微雨即至的博客-CSDN博客安装参照

node版本最好 14

node -v
v14.21.3

npm貌似必须在6以上

npm -v
6.14.18
yarn -v
1.22.19

安装strapi

npm方法(二选一)

npm install strapi -g   
会安装最新的。(我使用这个安装的)

yarn方法(二选一,官方推荐的方法

需要安装yarn(很容易安装)

yarn create strapi-app my-project --quickstart 
这条命令理论上会直接在当前路径快速创建项目,可以直接运行。

按照检查

strapi -v

创建项目

进入项目想被放的目录,输入下面指令

strapi new projectName(项目名称)
cd D:\software\project && yarn install

根据提示操作

启动

yarn develop
有多种启动方式,我选择了这种(需要提前安装yarn)

(重装系统后,图片缺失...)

启动之后它会自动跳出网页来,也会给出网页地址

(重装系统后,图片缺失...)

(重装系统后,图片缺失...)

(重装系统后,图片缺失...)

安装graphql插件

yarn strapi install graphql

注意:要进入项目目录里面执行改代码

(重装系统后,图片缺失...)

访问

目前已能正常访问、测试api了

(重装系统后,图片缺失...)

自定义api(不用,只是有这个功能)

strapi generate:controller name

strapi 一个可以简单、快速、自动生成安全可靠后端 api 的框架【补齐后端短板】 · w2solo - 独立开发者社区

教师登录检测自定义api

login-check/config/login-check.json 路由信息

{
    "routes": [
      {
        "method": "POST",
        "path": "/api/login-check/teacher",
        "handler": "login-check.logintea"
      }
    ]    
}

login-check/controllers/login-check.js

'use strict';
const bcrypt = require('bcrypt');
const knex = require('knex');

const db = knex({
  client:"mysql",
  connection:{
    host:'127.0.0.1',
    user:'root',
    password:'123456',
    database:'corpus_mgmt',
  },
});

module.exports = {
  async logintea(ctx){
    //从请求体中获取用户登录提交的数据
    const { tid,teapassword } = ctx.request.body;
    //先判断用户是否存在
    try{
      const existingUser = await db('teachers')
      .select('tid','teaname','teachaclass','teapassword','teastate')
      .where('tid',tid)
      .first();
      console.log(existingUser);
      if(!existingUser){
        //用户不存在,返回响应的错误哦消息
        return{
          error:'用户不存在,请检查用户名',
        };
      }
      if (existingUser.teastate === 1) {//用户处于激活状态
        // const hashedPassword = await bcrypt.hash(teapassword,10);
        const passwordMatch = await bcrypt.compare(teapassword,existingUser.teapassword);
        if(passwordMatch){
          //登录成功
          delete existingUser.teapassword; // 删除 teapassword 字段
          return {
            Message:'登录成功',
            user:existingUser,
          }; 
        }else {
          // 密码不匹配,返回相应的错误消息
          return {
            error: '密码不正确,请检查用户名或密码。',
          };
        }
      }else if (existingUser.teastate === 0) {
        // 用户尚未被激活,返回相应的错误消息
        return {
          error: '该用户尚未被激活',
        };
      } else {
        // teastate 值无效,返回相应的错误消息
        return {
          error: '无效的用户状态',
        };
      }
      
    }catch (error) {
      // 处理错误情况
      return {
        error:'登录失败,请重试',
      };
    }
  },
};

教师用户登录检测api文档

简要描述
  • 教师用户登录检测功能api测试
请求URL
  • http://localhost:1337/api/ogin-check/teacher
请求方式
  • post
header 示例值 必选 类型 说明
Authorization Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg4NTU2ODI0LCJleHAiOjE2OTExNDg4MjR9.TTcxO3VcRLlBMjcAQAqu_smASJNINFksen1RvlrVq64 string 令牌
请求参数示例
{
    "tid":"6",
    "teapassword":"123456"
}
成功返回示例
{
  "Message": "登录成功",
  "user": {
    "tid": 6,
    "teaname": "tea006",
    "teachaclass": "软件2101",
    "teastate": 1
  }
}
失败返回示例
{
  "error": "用户不存在,请检查用户名"
}
{
  "error": "密码不正确,请检查用户名或密码。"
}

{
 "error": "该用户尚未被激活"
}

(遇不到)
{
  error: '无效的用户状态'
}

(出现异常时)
{
error:'登录失败,请重试'
}

接口JSON语句练习

//knex语句
const knex = require('knex');

const db = knex({
	//连接数据库的配置信息
     client: 'mysql',
  connection: {
    host: '127.0.0.1',
    user: 'root',
    password: '123456',
    database: 'corpus_mgmt',
  },
});
//查询语句
const result = await db('表名').select('*').where('tid',tid);
//插入语句
const inserted = await db('表名').insert({数据});
//更新操作
const updated = await db('表名').where({条件}).update({data});
//删除数据
const deleted = await db('表名').where({条件}).del();
//关闭数据库
db

标签:const,Strapi,existingUser,使用,db,笔记,strapi,yarn,error
From: https://www.cnblogs.com/Hygge1024/p/18060005

相关文章

  • MySQL-01.Linux下MySQL安装和使用
    C-01.Linux下MySQL的安装和使用前置说明,MySQL高级部分,需要前置知识,为Linux操作系统。如果没有该部分知识,这里推荐韩顺平老师的Linux操作系统的教程。韩老师Linux教程1.安装前准备1.1Linux系统及工具的准备安装并启动好两台虚拟机:CentOS7版本掌握克隆虚拟机的操作mac地......
  • JavaWeb之Java Servlet学习笔记
    JavaWeb学习笔记,主要是讲JavaServle,很适合Java开发网站的入门学习。(以课程进度为目录)第四周Web课.jsp中删除共性代码(html、body)————.java文件能相对的简洁taglib指令(标签库)动作元素action——element:包含include动态包含:在运行时才引入文件,代码也会动态引入,时间和......
  • Java基础 语法笔记
    大二学习Java语法时,上课写的部分笔记,可能并不完整,仅用以作纪念。数组、集合、字符串(第六课)目录数组、集合、字符串(第六课)数组集合类Collection接口:泛型:List:ArrayList:LinkedList类SetHashSet类TreeSet类MapLterator接口Vector类Collections类查找、替换操作复制StringtoString()......
  • vue3笔记 ref标签 04
    储存标记中的内容<template><divclass="about"><h1ref="Holly">你好</h1><button@click="hhh">点击输出上述h1</button></div></template><scriptlang="ts"setup>i......
  • 手把手教你使用用AI自动化制作PPT
    大家好,我是Python进阶者。一、前言前几天AI创富俱乐部初创合伙人中的【2-周同学-深圳】深夜分享了使用AI自动化制作PPT的视频,后来看完录播,也是深有收获。这里也顺便说下,如果想加入我的合伙人的话,欢迎私聊哈。周同学接受了两个AI自动化制作PPT的网址,一个是chat-ppt,另外一个是Mids......
  • 后缀数组学习笔记
    后缀数组学习笔记定义所谓后缀,指的是对于一个字符串\(s\),如果它的下标从\(1\)到\(n\),那么对于\(s\)的一个后缀\(i=s[i\dotsn]\)。所谓后缀数组sa[],就是按照这些后缀的字典序排序后得到的数组。更具体的,后缀数组sa[i]中存储的是字符串\(s\)中排名为\(i\)的后缀的......
  • 使用 LVM 将多个硬盘合并,解决 /home 目录容量不足问题
    使用LVM将多个硬盘合并,解决/home目录容量不足问题误伤这又何妨于2023-11-0821:38:42发布阅读量698收藏点赞数11文章标签:5G运维版权你是否有这样一个难题,由于在安装系统时仅仅给了/home目录100G硬盘大小,但过了一段时间,发现“哎,100G不够用了,当初怎么不多分点呢。”你......
  • 虚树学习笔记
    虚树学习笔记定义虚树指的是不同于原树(我称之为实树)的重构树,使得在同样能够求解的情况下,整棵树的节点数更少,从而使得在存在多次询问时,一些复杂度关于树的节点数的树上算法能够在时限内求解。常用场景一般来说,虚树的使用场景比较单一,常见于在实树上存在一些特殊节点,并且答案与......
  • 线性基学习笔记
    线性基学习笔记定义线性空间\(V\)内的一个极大线性无关组是\(V\)的一组hamel基或线性基,简称基。以上内容是OIWIKI中提及的定义。更具体一点来说,对于一个向量组\(v\),如果满足对于任意的取值,使\(\sum_{i=1}^n\alpha_iv_i\ne0\)(\(\alpha\)是常数),即不回到原点,那......
  • 网络流学习笔记
    网络流学习笔记本来是不想写的,因为不想在里面博客插入图片,但是发现网络流似乎可以牵扯出许多不为人知的图论内容,因此特此写一篇博客铺路。前言网络流是一种说难也不难,说简单也不简单的结构。难就难在对于一道题来说,我们难以分辨需要用到什么算法,怎么建图,因此,我们只能多做多练,积......