ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

留言板项目开发

2022-01-03 13:03:24  阅读:226  来源: 互联网

标签:const 跨域 项目 留言 开发 mongoose Model true 留言板


一、需求分析(需求分析很重要)

需求:描述项目最终效果的文字和图;

产品经理写需求,然后要经过各个项目角色的评审通过;

需求一般包括:原型图,功能描述

原型图:

 

 

功能描述:

功能描述——注册和登录:

用户名唯一,不能重复注册;

用户名和密码匹配,即可登录;

登录成功后,跳转到首页

功能描述——首页:

非登录用户不能进入首页,登录用户可发布留言;

可查看全部留言,或可查看自己的留言;

只能编辑和删除自己的留言,无权操作他人留言

二、数据库设计

mongodb创建数据库和集合(分析需要创建的数据库和集合):

创建数据库comment;

创建集合comments,存储留言数据;

创建集合users,存储用户

回顾mongoose:
mongoose定义Schema和Model:

三、接口(路由)设计

分析需要哪些接口:

注册、登录、获取留言列表、创建留言、更新留言、删除留言

哪些接口需要登录校验:

登录和注册不需要登校验,其他接口都需要登录校验

登录如何实现(跨域传递cookie):

使用cookie和session实现登录,但cookie跨域不共享;

前后端分离的开发方式,需要设置跨域传cookie

四、初始化环境开发

初始化koa2环境:

1)开发环境——初始koa2项目环境

安装 koa generator 脚手架:

使用脚手架创建koa 2项目,项目名为 test6:

 打开该项目文件的控制台,运行npm install安装: 

在根目录下创建src目录,将routes、views、app.js移到src文件下;

2)开发环境——规范目录和层级:

 为何要分层:拆分模块,职责明确清晰;易于扩展

3)开发环境——连接数据库:

使用npm安装mongoose:

连接数据库的代码:

// 使用mongoose——连接数据库
// 在src的db目录下创建db.js文件

// 引用mongoose
const mongoose = require('mongoose')

// 定义数据库的地址
const url = 'mongodb://localhost:27017'
// 定义数据库的名字
const dbName = 'comment3'

// mongoose的配置
// 如果版本比较高,如6.x版本,则可以省略这些配置
// mongoose.set('useCreateIndex', true)
// mongoose.set('useFindAndModify', true)

// 开始连接
mongoose.connect(`${url}/${dbName}`,{
    useNewUrlParser:true,
    useUnifiedTopology: true,
})

// 获取连接对象
const conn = mongoose.connection

// 监听错误
conn.on('error', err => {
    console.error('mongodb 连接出错', err)
})

// 导出mongoose
module.exports = mongoose

定义User Model

// User Model

const mongoose = require('../db/db')

// 定义User Schema(规则)
const UserSchema = mongoose.Schema({
    username: {
        type: String,
        required: true,//必须填写
        unique: true  //不能重复
    },
    password: String,
    age: Number,
    city: String,
    gender: {
        type: Number,
        default: 0 //0是保密,1是男, 2是女
    }
},{
    timestamps: true //时间戳
})

// 定义User Model
const User = mongoose.model('user', UserSchema)

// 导出User Model
module.exports = user

定义Comment Model

// Comment Model

const { model } = require('mongoose')
const mongoose = require('../db/db')

// 定义Comment Schema
const CommentSchema = mongoose.Schema({
    content:{
        type: String,
        required: true, //必需
    },
    username: String
})

// 定义Comment Model
const Comment = mongoose.model('comment',CommentSchema)

// 导出
module.exports = Comment

五、项目开发

前端代码介绍:(由于本次项目主要练习后端,前端代码将带过)

comment-fe是项目的前端代码,打开项目后要先使用npm i 去安装相应的依赖:

跨域和跨域传递cookie:

前端允许跨域带 cookie需在ajax.js中设置:

 服务端支持跨域在app.js中:

 在onerror后面写如需跨域中间件:

接口开发和前后端联调:略

标签:const,跨域,项目,留言,开发,mongoose,Model,true,留言板
来源: https://blog.csdn.net/visibleforest/article/details/122133490

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有