Strapi的使用笔记

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
posted @   Hygge-1024  阅读(258)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示