MST

星途 面试题库

面试题:Node.js中Express集成MySQL数据库实现数据插入

在Node.js项目里,使用Express框架集成MySQL数据库,并编写代码实现向一个名为`users`的表中插入一条新用户记录,表结构包含`id`(自增主键)、`name`(字符串)和`age`(数字)字段。请给出关键代码片段及解释。
13.8万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
  1. 安装依赖: 首先,确保项目中安装了expressmysql模块。在项目目录下运行以下命令:
    npm install express mysql
    
  2. 关键代码片段
    const express = require('express');
    const mysql = require('mysql');
    
    const app = express();
    app.use(express.json());
    
    // 创建数据库连接
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'password',
        database: 'your_database'
    });
    
    connection.connect((err) => {
        if (err) {
            console.error('Error connecting to MySQL:', err);
            return;
        }
        console.log('Connected to MySQL database!');
    });
    
    app.post('/users', (req, res) => {
        const { name, age } = req.body;
        const sql = 'INSERT INTO users (name, age) VALUES (?,?)';
        connection.query(sql, [name, age], (err, results) => {
            if (err) {
                console.error('Error inserting user:', err);
                return res.status(500).json({ error: 'Failed to insert user' });
            }
            res.status(201).json({ message: 'User inserted successfully' });
        });
    });
    
    const port = 3000;
    app.listen(port, () => {
        console.log(`Server running on port ${port}`);
    });
    
  3. 代码解释
    • 引入模块
      • const express = require('express');引入Express框架,用于构建Web应用。
      • const mysql = require('mysql');引入MySQL数据库连接模块。
    • 创建Express应用并配置中间件
      • const app = express();创建一个Express应用实例。
      • app.use(express.json());使用express.json()中间件,以便能够解析JSON格式的请求体。
    • 创建数据库连接
      • const connection = mysql.createConnection({... });创建一个MySQL数据库连接,配置host(数据库主机)、user(数据库用户名)、password(数据库密码)和database(数据库名)。
      • connection.connect((err) => {... });连接到MySQL数据库,并在连接成功或失败时进行相应的日志输出。
    • 处理用户插入请求
      • app.post('/users', (req, res) => {... });定义一个处理POST请求到/users路径的路由。
      • const { name, age } = req.body;从请求体中解构出nameage字段。
      • const sql = 'INSERT INTO users (name, age) VALUES (?,?)';定义SQL插入语句,?是占位符。
      • connection.query(sql, [name, age], (err, results) => {... });执行SQL查询,将nameage的值作为参数传递,在查询成功或失败时进行相应处理。如果成功,返回状态码201和成功消息;如果失败,返回状态码500和错误消息。
    • 启动服务器
      • const port = 3000;定义服务器端口。
      • app.listen(port, () => {... });启动Express服务器,并在控制台输出服务器运行的端口信息。