nodejs学习(一)nodejs+mysql搭建简单服务

nodejs学习(一)nodejs+mysql搭建简单服务
nodejs学习(二)nodejs+mysql简单登录注册
nodejs学习(三)nodejs跨域
nodejs学习(四)nodejs图片上传以及设置静态文件访问路径

一、项目搭建

  1. 通过 npm init命令为你的应用创建一个 package.json 文件。
  2. 安装express,node最常用的框架,npm i express
  3. 安装sequelize库,和mysql驱动程序 npm i sequelize mysql2
    sequelize是一个orm框架,什么是orm呢?即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。
    写一个测试demo, 新建index.js文件
    const express = require('express')
    
    const app = express()
    
    app.listen(4000, () => {
      console.log('serve is running on port:4000')
    }) 
    
    安装nodemonnpm install nodemon -D # 加-D是指在开发环境中安装。
    nodemon index.js nodemon软件会自动监测文件的变化,当有变化时重新启动服务。效果如图
    在这里插入图片描述

二、连接mysql数据库

  1. 新建database文件夹,在database文件夹下创建init.js文件
    // 引入sequelize
    const { Sequelize } = require('sequelize')
    const Sqeuelize =  require('sequelize')
    
    /**
     * @param 数据库名称
     * @param 用户名
     * @param 密码
     */
    const sequelize = new Sequelize('node', '数据库账号' ,'数据库密码', {
      host: '数据库地址',
      port: '3306',
      dialect: 'mysql'
    })
    
    // 测试连接
    sequelize
      .authenticate()
      .then(() => {
        console.log('Connection has been established successfully.');
      })
      .catch(err => {
        console.error('Unable to connect to the database:', err);
      });
    
      module.exports = { Sequelize, sequelize}
    
  2. index.js文件中引入init.js,运行测试结果如下
    require('./database/init')
    
    在这里插入图片描述

三、新建表user文件

  1. database文件夹下席间modules文件夹,并在modules文件夹下创建user.js文件

    const {Sequelize, sequelize} = require('../init.js')
    
    /**
     * 
     * @params 表明
     * @params 参数
     * 
     */
    const User = sequelize.define('user', {
      username: {
        type: Sequelize.STRING,
        validate: {  // 验证 
          notEmpty: true // 非空
        }
      },
      password: {
        type: Sequelize.STRING,
        validate: {
          notEmpty: true
        }
      }
    })
    
    User.sync().then(() => {
      console.log('user表模型已经同步')
    })
    

    运行结果如下

    [nodemon] restarting due to changes...
    [nodemon] starting `node index.js`
    serve is running on port:4000
    Executing (default): SELECT 1+1 AS result
    Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL auto_increment , `username` VARCHAR(255), `password` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
    Connection has been established successfully.
    Executing (default): SHOW INDEX FROM `users`
    user表模型已经同步
    

    如果还未创建表,将会自动创建,如图
    在这里插入图片描述

四、简单get请求测试

  1. 根目录新建router文件夹,router文件夹下创建user.js文件
    const express = require('express')
    
    const router = express.Router()
    
    router.get('/test', (req, res) => {
      res.send({ msg:'test' })
    })
    
    module.exports = router
    
  2. index.js中
    const router = require('./router/user')
    
    app.use(express.urlencoded({extended: false}))  // 请求体中的数据会以普通表单形式(键值对)发送到后端
    app.use(express.json({extended: false})) // 请求体中的数据会以json字符串的形式发送到后端
    app.use('/user', router)
    
  3. postman测试

在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值