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

从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(一)

 项目包含5个模块

1.首页 (聊天主页)

2.注册

3.登录

4.个人资料

5.设置主题

一、配置开发环境 建立项目文件夹

mkdir chat-project
cd chat-project
mkdir server && mkdir web

cd server npm init
cd web npm create vite@latest

   创建前端项目时我们选择javascript (typescript不熟)

   根据提示提示 enter 创建后端 前后端2个项目  把文件夹整理成如下所示

          

二、安装依赖

1.server端

npm i bcryptjs cloudinary cookie-parser cors dotenv express jsonwebtoken mongoose socket.io

npm i nodemon -D

     最终package.json如下图

2.web端

代码如下(示例):

npm i axios lucide-react react-hot-toast react-router-dom socket.io-client zustand
npm i tailwindcss@3.4.17 postcss autoprefixer daisyui -D

1.配置tailwindcss

在web 文件夹下执行 npx tailwindcss init

tailwind.config.js 内容如下

/** @type {import('tailwindcss').Config} */
import daisyui from "daisyui"
export default  {
  content: ["./src/**/*.{html,js,jsx,ts,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [
    daisyui
  ],
  daisyui: {
    themes:[
      "light",
      "dark",
      "cupcake",
      "bumblebee",
      "emerald",
      "corporate",
      "synthwave",
      "retro",
      "cyberpunk",
      "valentine",
      "halloween",
      "garden",
      "forest",
      "aqua",
      "lofi",
      "pastel",
      "fantasy",
      "wireframe",
      "black",
      "luxury",
      "dracula",
      "cmyk",
      "autumn",
      "business",
      "acid",
      "lemonade",
      "night",
      "coffee",
      "winter",
      "dim",
      "nord",
      "sunset",
    ]
  },
}

vite.config.js配置情况

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
import tailwindcss from "tailwindcss"

// https://vite.dev/config/
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')
    }
  },
  // 新增 css 配置
  css: {
    postcss: {
      plugins: [tailwindcss()],
    }
  }
})

新建index.css文件  并在main.jsx下引入 index.css内容

@tailwind base;

@tailwind components;

@tailwind utilities;

 最终前端项目文件结构如下


 3.测试依赖安装

把原有的App.jsx内容删除  替换为

import { useState } from 'react'
function App() {

  return (
    <>
      <button className="btn">Button</button>
      <button className="btn btn-neutral">Neutral</button>
      <button className="btn btn-primary">Primary</button>
      <button className="btn btn-secondary">Secondary</button>
      <button className="btn btn-accent">Accent</button>
      <button className="btn btn-ghost">Ghost</button>
      <button className="btn btn-link">Link</button>
      <h1 className='text-blue-500'>测试内容</h1>
    </>
  )
}

export default App

在web目录下执行 npm run dev 得到如下效果 

以上就是今天要讲的内容,本文仅仅简单介绍了文件目录的创建 前后台依赖的安装。如有问题请留言。

相关文章:

  • 给出方法步骤 挑战解决 用加密和访问控制保护数据隐私。 调架构、参数与用 GPU 加速优化模型性能。 全面测试解决兼容性问题。
  • 本地化部署 DeepSeek:从零到一的完整指南
  • 【Java】单例模式
  • 二级公共基础之数据结构与算法篇(七)排序技术
  • 基于ffmpeg+openGL ES实现的视频编辑工具-添加贴纸(八)
  • DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析
  • 曝光铁三角
  • 三维重建(十四)——铰接类文章整理
  • 前端面试-JavaScript 数据类型详解
  • Kubernetes控制平面组件:APIServer 基于匿名请求的认证机制详解
  • std::lock_guard、std::unique_lock、std::shared_lock
  • Oil Invoice Process
  • Linux内核,slub分配流程
  • 系统思考—结构影响行为
  • PyTorch v2.6 Overview
  • springboot+dubbo+zookeeper的注册服务和调用实践
  • vue2.x 中子组件向父组件传递数据主要通过 $emit 方法触发自定义事件方式实现
  • DeepSeek最新开源动态:核心技术公布
  • 创建Linux虚拟环境并远程连接
  • 大屏自适应终极方案:基于比例缩放的完美适配实践(Vue3版)
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 海外考古大家访谈|冈村秀典:礼制的形成与早期中国
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 李成钢:近期个别经济体实施所谓“对等关税”,严重违反世贸组织规则
  • “9+2”复式票,浦东购彩者拿下体彩大乐透1153万头奖
  • 上交所五方面落实募资新规:强化关键少数责任和股东权利保障