nodeJs实现简单的服务端项目

89 阅读3分钟

1.创建一个文件夹:lraw-node

image.png

2.并在项目根目录中运行如下的命令,初始化包管理配置文件:npm init -y

npm init -y
//笔记-cmd查看node是否安装
查看node版本:node -v
查看本地安装的所有node版本:nvm ls
切换node版本:nvm use 16.15.0

3.输入命令安装指定版本的express

npm i express@4.17.1

4.在项目根目录中新建 app.js 作为整个项目的入口文件

image.png

// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()

app.listen(3007, function () {
    console.log('api server running at http://127.0.0.1:3007')
})

5.配置 cors 跨域,通过npm 安装cors

npm i cors@2.8.5

6.在 app.js 中导入并配置 cors 中间件

// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()
// 导入 cors 中间件
const cors = require('cors')
// 将 cors 注册为全局中间件
app.use(cors())

app.listen(3007, function () {
    console.log('api server running at http://127.0.0.1:3007')
})

7.配置解析表单数据的中间件

通过如下的代码,配置解析 application/x-www-form-urlencoded 格式的表单数据的中间件:

// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()
// 导入 cors 中间件
const cors = require('cors')
// 将 cors 注册为全局中间件
app.use(cors())
//配置解析 application/x-www-form-urlencoded 格式的表单数据的中间件
app.use(express.urlencoded({ extended: false }))

// write your code here...
// 调用 app.listen 方法,指定端口号并启动web服务器

app.listen(3007, function () {
    console.log('api server running at http://127.0.0.1:3007')
})

8.初始化路由相关的文件夹 在项目根目录中,新建router 文件夹,用来存放所有的 路由模块

image.png 9. 在router 文件夹中,新 user.js 文件,作为用户的路由模块 npm install moment安装时间处理的插件

const express = require('express')
// 创建路由对象
const router = express.Router()
const moment = require('moment');
const fs = require('fs');
const { Console } = require('console');

// 用户抽奖抽中的奖品处理机制
router.post('/reguser', (req, res) => {
    const param = JSON.parse(JSON.stringify(req.body));
    // 异步读取JSON文件
    fs.readFile('data.json', 'utf8', (err, data) => {
        if (err) {
            console.error('Error reading the file:', err);
            return;
        }
        try {
            // 解析JSON数据
            const jsonData = JSON.parse(data);
            let dataArry = JSON.parse(JSON.stringify(jsonData.defaultTable))
            let isShow = false

            console.log(dataArry.some(e => e.phone == param.phone))
            if(dataArry.some(e => e.phone == param.phone)){
                let isLength = dataArry.filter((e) => {return e.phone == param.phone})
                console.log(isLength.length)
                let timer = moment(new Date().getTime()).format('YYYY-MM-DD')
                console.log(timer)
                let createTime = moment(Number(isLength[0].createTime)).format('YYYY-MM-DD')
                console.log(createTime)
                // 处理当天抽奖只能有一条
                if(isLength.length >= 1 && timer == createTime){
                    isShow = true
                }
            }
            if(isShow){
                return res.send(JSON.stringify({code:'44444',message:"已参与抽奖,不可重复抽奖"}))
            }else{
                dataArry.push(param)
                // 将输入转换为JSON数组
                const jsonArray = {defaultTable:dataArry};
                // 写入文件
                fs.writeFile('data.json', JSON.stringify(jsonArray, null, 2), 'utf8',(err) => {
                    if (err) {
                        console.error(err);
                        return;
                    }
                    console.log('数据已保存到data.json文件');
                });
            }
        } catch (err) {
            console.error('Error parsing JSON:', err);
        }
    });
})
// 登录
router.post('/login', (req, res) => {
    res.send('login OK')
})
// 将路由对象共享出去
module.exports = router

10.在 app.js 中,导入并使用 用户路由模块

// 导入 express 模块
const express = require('express')
// 创建 express 的服务器实例
const app = express()
// 导入 cors 中间件
const cors = require('cors')
// 将 cors 注册为全局中间件
app.use(cors())
//配置解析 application/x-www-form-urlencoded 格式的表单数据的中间件
app.use(express.urlencoded({ extended: false }))

// write your code here...
// 调用 app.listen 方法,指定端口号并启动web服务器
// 导入并注册用户路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)

app.listen(3007, function () {
    console.log('api server running at http://127.0.0.1:3007')
})

11.在终端通过node app.js 启动服务测试一下项目的功能

image.png

image.png 12.启动前端项目请求

前端请求地址:http://127.0.0.1:3007/api/reguser

image.png