0
点赞
收藏
分享

微信扫一扫

【node】 地址标准化 解析手机号、姓名、行政区

写心之所想 2023-12-18 阅读 40

Node.js和MySQL编写接口并进行请求

一、安装Node.js:首先,确保你的计算机上已经安装了Node.js。你可以从Node.js官方网站(https://nodejs.org)下载并安装适合你操作系统的版本。

二、新建 server 文件夹作为项目根目录,并在项目根目录中运行如下的命令,初始化包管理配置文件:

npm init -y

三、安装必要的依赖

express
  1. 安装Express:在项目目录中运行以下命令,安装Express模块:
npm install express
  1. 引入Express模块:在你的Node.js代码中,引入Express模块:
const express = require('express');
  1. 创建Express应用程序:使用express()函数创建一个Express应用程序实例。以下是一个示例:
const app = express();
  1. 定义路由和处理函数:使用app.get()、app.post()等方法定义路由,并为每个路由指定相应的处理函数。以下是一个示例:
app.get('/', (req, res) => {
  res.send('Hello, World!');
});
  1. 启动服务器:使用app.listen()方法来启动服务器并监听指定的端口。以下是一个示例:
app.listen(3000, () => {
  console.log('服务器已启动,监听端口3000');
});
cors(https://www.npmjs.com/package/cors)
  1. 安装cors:在项目目录中运行以下命令,安装cors模块:
npm install cors
  1. 引入cors模块:在你的Node.js代码中,引入cors模块:
const cors = require('cors');
  1. 配置CORS中间件:在Express应用程序中,使用app.use()方法来配置cors中间件,以允许或限制特定来源的跨域访问。以下是一个示例:
app.use(cors());
这里使用了默认的cors配置,将允许所有来源的跨域请求。你也可以根据需要进行自定义配置,例如指定允许的来源、允许的HTTP方法等。
  1. 使用CORS:在路由处理函数中,你可以通过res.header()方法来设置CORS相关的响应头。以下是一个示例:
app.get('/data', (req, res) => {
  res.header('Access-Control-Allow-Origin', 'http://example.com');
  res.header('Access-Control-Allow-Methods', 'GET, POST');
  res.header('Access-Control-Allow-Headers', 'Content-Type');

  // 执行操作,例如返回数据给客户端

  res.json({
    message: '数据获取成功',
    data: {
      // 数据内容
    }
  });
});
body-parser(https://www.npmjs.com/package/body-parser)
  1. 安装body-parser:在项目目录中运行以下命令,安装body-parser模块:
npm install body-parser
  1. 引入body-parser模块:在你的Node.js代码中,引入body-parser模块:
const bodyParser = require('body-parser');
  1. 配置body-parser中间件:在Express应用程序中,使用app.use()方法来配置body-parser中间件,以便在每个请求中都能够访问请求体的内容。以下是一个示例:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
  1. 使用解析后的请求体:在路由处理函数中,你可以通过req.body来访问解析后的请求体数据。以下是一个示例:
app.post('/users', (req, res) => {
  const { name, email } = req.body;

  // 执行操作,例如将用户数据保存到数据库

  res.json({
    message: '用户创建成功',
    user: {
      name,
      email
    }
  });
});
mysql
  1. 安装MySQL:首先,确保你的计算机上已经安装了MySQL数据库。你可以从MySQL官方网站(https://dev.mysql.com/downloads/installer/)下载并安装适合你操作系统的版本。也可以使用vscode依赖mysql
  2. 安装依赖
npm install mysql 
  1. 创建数据库连接:在你的Node.js代码中,创建一个MySQL数据库连接,并配置连接参数。以下是一个简单的示例:
const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database'
});

connection.connect((err) => {
  if (err) {
    console.error('数据库连接失败:', err);
  } else {
    console.log('数据库连接成功');
  }
});

  1. 创建API路由和处理函数:在你的Node.js代码中,创建Express应用程序,并定义API路由和相应的处理函数。以下是一个简单的示例:
const express = require('express');
const app = express();

// 获取所有用户
app.get('/users', (req, res) => {
  const query = 'SELECT * FROM users';

  connection.query(query, (err, results) => {
    if (err) {
      console.error('查询失败:', err);
      res.status(500).json({
        error: '服务器内部错误'
      });
    } else {
      res.json(results);
    }
  });
});

// 启动服务器
app.listen(3000, () => {
  console.log('API服务器已启动,监听端口3000');
});

  1. 启动服务器并测试接口:在项目目录中运行以下命令,启动你的API服务器:
node index.js
  1. 使用API请求工具(例如Postman)或浏览器,访问http://localhost:3000/users,你应该能够看到返回的用户数据。

四、具体代码

const express = require('express')
const cors = require('cors')
const bodyParser = require('body-parser')

const app = express()
app.use(cors()) // 使用cors中间件


// 解析请求体,使我们能够访问POST请求的数据
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

// 创建数据库链接
const connection = mysql.createConnection({
  host: '127.0.0.1',
  user: '用户名',
  password: '密码',
  database: '数据库名'
})
connection.connect()
function initDate () {
  var dt = new Date()
  var y = dt.getFullYear()
  var mt = dt.getMonth() + 1
  var day = dt.getDate()
  var h = dt.getHours() //获取时
  var m = dt.getMinutes() //获取分
  var s = dt.getSeconds() //获取秒
  if (mt < 10) {
    mt = '0' + mt
  }
  if (day < 10) {
    day = '0' + day
  }
  if (h < 10) {
    h = '0' + h
  }
  if (m < 10) {
    m = '0' + m
  }
  if (s < 10) {
    s = '0' + s
  }
  return y + '-' + mt + '-' + day + ' ' + h + ':' + m + ':' + s
}
app.post('/submit', (req, res) => {
  const data = req.body
  const user_name = data.name
  const email = data.email
  const message = data.message
  const create_time = initDate()
  console.log(create_time, 'create_time')
  connection.query(
    `insert into message_log (create_time, user_name, email,remark) values ('${create_time}','${user_name}','${email}','${message}');`,
    function (err, rows, fields) {
        console.log(err, rows, fields)
      if (err == null) {
        res.json({
          status: 200
        })
      } else {
        res.json({
          status: 500,
          err, rows, fields
        })
      }
    }
  )
})

// 启动服务器
app.listen(3000, () => {
  console.log('服务器已启动,监听端口3000')
})

举报

相关推荐

0 条评论