首页 > 其他分享 >MERN全栈框架搭建

MERN全栈框架搭建

时间:2022-09-26 21:45:15浏览次数:74  
标签:res app req json server 全栈 products MERN 搭建

创建一个项目目录

创建项目目录mern-demo

搭建前端react框架

进入项目目录mern-demo,初始化前端react框架

npx create-react-app frontend

初始化完成后,前端项目目录格式如下

前端项目目录格式

运行

cd frontend
npm start

可以看到界面

初始化界面

关闭eslint代码检测,修改package.json中eslintConfig

"eslintConfig": {
  "extends": [
    "react-app",
    "react-app/jest",
  ],
  "rules": {
    "no-undef": "off",
    "no-restricted-globals": "off",
    "no-unused-vars": "off"
  }
},

删除不需要的文件

frontend/src/App.css
frontend/src/App.test.js
frontend/src/logo.svg

清空默认主页,并简单测试

清空主页

效果

效果

删除frontend中.git文件,将.gitignore移动到项目根路径,并两处作修改

.gitignore修改

其中
node_modules\用于忽略子路径下的node_modiles文件夹
.env用于忽略项目环境变量(敏感信息)

将整个项目用git进行管理

git init
git add .
git commit -m 'react setup'

搭建后端express框架

在项目根路径新建文件夹backend,进入backend运行

npm init
npm i express --save

创建文件及文件夹

backend/server.js
backend/data/

编写server.js

const express = require("express")
const products = require("./data/Products")

const app = express()

app.get("/", (req, res) => {
  res.send("server running...")
})

app.get("/api/products", (req, res) => {
  res.json(products)
})

app.get("/api/products/:id", (req, res) => {
  const product = products.find((product) => product._id === req.params.id)
  res.json(product)
})

app.listen(5000, console.log("服务器已经在5000端口运行..."))

浏览器输入http://localhost:5000可以看到页面输出

页面输出

前端利用axios请求数据

import axios from "axios"

const fetchProducts = async () => {
    const { data } = await axios.get("/api/products")
    console.log(data)
}
fetchProducts()

配置开发依赖项

在项目根路径下运行

npm init

安装开发依赖

npm i -D nodemon concurrently

其中
nodemon可以实现服务器动态刷新
concurrently可以实现同时启动前后端

修改package.json(项目根路径下)

{
  "name": "demo02",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "server": "nodemon backend/server",
    "client": "npm start --prefix frontend",
    "dev": "concurrently \"npm run server\" \"npm run client\""
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "concurrently": "^7.4.0",
    "nodemon": "^2.0.20"
  }
}

搭建mongodb数据库

mongodb官网下载压缩包

将压缩包加压到安装路径,进入安装目录创建文件夹

data/db

进入bin目录,运行

mongod --dbpath=..\data\db

即可启动数据库

后端连接并查询数据库

连接

// server.js
import mongoose from "mongoose"

// 数据库建立并连接
var url = "mongodb://localhost:27017/mern-demo"
mongoose.connect(url)
var db = mongoose.connection
db.on("error", console.error.bind(console, "MongoDB connection error:"))

查询

// server.js
app.get("/api/products", (req, res) => {
  Product.find((err, docs) => {
    if (!err) {
      console.log("查询到记录:\n" + docs)
      res.json(docs)
    }
  })
  // res.json(products)
})

app.get("/api/products/:id", (req, res) => {
  Product.findById(req.params.id, (err, docs) => {
    if (!err) {
      console.log("查询到记录:\n" + docs)
      res.json(docs)
    }
  })
  // const product = products.find((product) => product._id === req.params.id)
  // res.json(product)
})

标签:res,app,req,json,server,全栈,products,MERN,搭建
From: https://www.cnblogs.com/llk2000/p/16728891.html

相关文章

  • java开发环境搭建
    JDK下载下载链接:https://www.oracle.com/java/technologies/downloads/如果链接失效就去搜索Java官网找到download路径打开安装包,无脑next,可以更改一个想存放的目录。......
  • TypeScript:运行环境搭建
    环境搭建1、安装node(16版本)2、全局安装TypeScript指令:npmi-gtypescript3、查看版本指令:tsc-v4.创建tsconfig.js文件指令:tsc--init 文件:{"c......
  • Linux 搭建简单 HTTP 下载服务
    1.防火墙开启8000端口2.创建文件夹,文件mkdirtestcdtesttoucha.txt3.后台启动服务nohuppython-u-mSimpleHTTPServer>download.log2>&1&4.下载地址......
  • clickhouse高可用k8s集群搭建
    前提条件安装一个k8s集群安装helm工具1,安装operatorhelmrepoaddckhttps://radondb.github.io/radondb-clickhouse-kubernetes/helmrepoupdatekubectlcreaten......
  • Windows系统使用freeSSHd搭建一个SFTP服务器
    1.freeSSHd简介freeSSHd是一个SFTP服务器。它用来支持使用密码或SSH免密登录的方式进行上传文件或远程操作系统。说白一点就是一个远程操作的服务端,安装了SFTP服务器的......
  • go入门之搭建环境hello word
    1.安装go #检测版本goversiongoversiongo1.18.5windows/amd642.下载goland,登陆账号没有破解的3.创建项目 4.新建go文件  5.执行文件  6.目前就......
  • jdk-14.0.1环境搭建及cmd环境编译执行
    1.安装包获取https://www.oracle.com/java/technologies/javase/jdk14-archive-downloads.html2.环境变量配置最新版本的JAVA环境变量设置只需要配置Path即可。JAVA_H......
  • zabbix6.0平台搭建
    此方法适用于zabbix6以上版本zabbix6.0前期环境准备:Lamp(linuxhttpdmysql8.0php)mysql官网下载位置:https://dev.mysql.com/downloads/mysql/Zabbix源码包地址:https://w......
  • 直播系统搭建,el-table更改某行背景及文字样式
    直播系统搭建,el-table更改某行背景及文字样式1、el-table标签添加属性:row-class-name="tableRowClassName"2、定义属性方法 //row是获取到某一行的数据orderTimeF......
  • 了解 MERN 堆栈
    了解MERN堆栈几年来,我们听到了很多关于Meanstack和Mearnstack的信息。我在博客上很少谈论它,但我是专门研究MERN的全栈开发专家。因此,在本文中,我将向您解释ME......