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
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