该小案列是使用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,即可
有不足的地方,请大家评论,指点一下