使用node+express+mysql实现的小案例(仅供参考学习)

该小案列是使用node+express+MySQL实现的,仅供参考。

一、创建项目并初始化

  • 在电脑上,创建一个目录(用来存放项目的)
  • yarn(或npm)进行初始化,初始化成功,项目会生成一个package.json文件
yarn init -y
或
npm init -y

二、安装项目所需要的包

项目需要mysql,express,body-parser 三个包

yarn add mysql express body-parser
或
npm install mysql express body-parser

三、项目开始

文件代码均在下面

  • 创建一个index.js文件,用来做项目的入口文件
const express = require('express');
const router = require('./router/index');
// 引入body解析
const bodyParser = require('body-parser');
const app = express();
const port=process.env.PORT||3000;

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
// 路由中间件要放在最后
app.use(router)

app.listen(port,()=>{
    console.log(`服务器地址:http://localhost:${port}`);
})

  • 创建一个router文件夹,用来存放各种路由,在里面创建一个index.js文件(用来对所有其他路由文件的统一暴露文件),创建一个articles.js文件(用来操作文章的路由)
    articles.js代码如下
const express = require('express');
// 导入数据库模型
const Article = require('../models/Article');
// 用于获取网页的标题和内容
// const read = require('node-readability');
// const { json } = require('body-parser');
const router=express.Router();

// const articles=[{title:'example'}]

// 获取所有文章
router.get('/articles',(req,res,next)=>{
    Article.all((err,data)=>{
        if(err){
            return next(err);
        }
        res.send(data)
        // res.format({
        //     html:()=>{
        //        res.render('articles.ejs',{articles:data})
        //     },
        //     json:()=>{
        //         res.send(data)
        //     }
        // })
    })
})

// 创建一篇文章
router.post('/articles',(req,res,next)=>{
    let url=req.body.url;
    read(url,(err,result)=>{
        if(err||!result){
            return res.status(500).send("error!");
        }
        Article.create({title:result.title,context:result.content},(err,data)=>{
            if(err){
                return next(err);
            }
            res.send(data)
        })
    })
})
module.exports=router

index.js文件代码如下

const articles = require('./articles');
const express = require('express');

const router=express.Router();
router.use('/api',articles);

module.exports=router

-创建一个db文件夹(用来存放数据库的文件),创建一个connection.js文件(用于连接数据库的)
connection.js代码如下

const mysql = require('mysql');

// 连接数据库的信息
db={
    host:'localhost',
    user:'root',
    password:'123456a.',
    database:'nodetest'
}

// 封装数据库连接方法
const connectionDB=(sql,params,cb)=>{
    // return new Promise((resolve,reject)=>{
        // 创建数据库连接
        const connection=mysql.createConnection(db);
        // 连接数据库
        connection.connect((err,conn)=>{
            if(err){
                console.log("数据库连接失败");
                return;
            }
            console.log("数据库连接成功");
            connection.query(sql,params,cb)
        })

    // })
}

module.exports=connectionDB;

-创建一个models文件夹(用来存放数据模型的文件),创建一个Article.js文件(书籍的模型)
Article.js代码如下

const DB = require('../db/connection');

class Article{
    // 获取所有文章
    static all(cb){
        let sql='select * from articles';
        let params=[];
        DB(sql,params,cb)
    }
    // 添加一篇文章
    static create(data,cb){
        DB('insert into articles(title,context) values(?,?)',[data.title,data.context],cb)
    }
}

module.exports=Article
  • 创建一个nodetest数据库和articles表,创建表的sql语句
CREATE TABLE `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `context` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
恭喜你,项目已完成。

启动项目

node index.js

当然我们还可以在package.json文件中,通过scripts来配置项目的启动

"scripts": {
    "start": "node index.js",
    "test": "echo \"Error:no test\" && exit 1"
  },

在这里插入图片描述
此时,只需要在控制台输入以下命令,便可启动

yarn start
或
npm start
在浏览器地址栏,输入http://localhost:3000/api/articles,即可

在这里插入图片描述

有不足的地方,请大家评论,指点一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值