【搭建博客服务端部分】第二部分 搭建基本的框架
2. 搭建基本的框架
server/app.js
// 养成规范引入的写上面
const express = require('express')
const multer = require('multer')
const port = 8888
const app = express()
// 跨域请求配置
app.use(function (req, res, next) {
// 设置允许跨域的域名,*表示的是允许任何域名进行跨域
res.header('Access-Control-Allow-Origin', '*')
// 设置header类型,表示的是允许任何类型的header
res.header('Access-Control-Allow-Headers', '*')
// 跨域允许的请求方式
res.header('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS')
if(req.method == 'OPTIONS'){
// 让options尝试请求快速结束
res.sendStatus(200)
}else{
next()
}
})
// 支持json
app.use(express.json())
// 支持使用上传中间件
const update = multer({
// 存放的位置
dest:'./public/upload/data'
})
// 允许上传任何东西
app.use(update.any())
// 指定静态资源的路径
app.use(express.static(path.join(__dirname,'public')))
// 以get请求则返回值
app.get('/', (req, res) => {
res.send('Hello,express!')
})
app.listen(port, () => {
console.log(`http://localhost:${port}`);
})
server/db
使用heidisql
软件进行创建数据库,官网搜索即可下载
打开软件后右键新建会话
创建三张表
server/db/dbUtil.js
const sqlite3 = require('sqlite3').verbose()
const Genid = require('../utils/SnowFlake')
const path = require('path')
// 连接数据库
const db = new sqlite3.Database(path.join(__dirname,'blog.sqlite3'))
const genid = new Genid({WorkerId:1})
// 对查询,修改数据库的方法进行封装,便于使用,不会产生地狱回调
// 创建一个属性
db.async = {}
// 对db.all方法进行封装,查询
db.async.all = (select,params) =>{
return new Promise((resolve,reject)=>{
db.all(select,params,(error,rows) =>{
resolve({error,rows})
})
})
}
// 对db.run方法进行封装,对数据库进行增删改查
db.async.run = (select,params) =>{
return new Promise((resolve,reject)=>{
db.run(select,params,(error,rows) =>{
resolve({error,rows})
})
})
}
//暴露出去
module.exports = {db,genid}
server/router/testRouter.js
const express = require('express')
const { db, genid } = require('../db/dbUtil')
// 创建路由
const router = express.Router()
// 编写路由
router.get('/test', async (req, res) => {
let data = await db.async.all('select * from admin', [])
res.send({
id: genid.NextId(),
data
})
})
module.exports = router
到app.js中去注册路由
// 养成规范引入的写上面
const express = require('express')
const multer = require('multer')
const port = 8888
const app = express()
// 跨域请求配置
app.use(function (req, res, next) {
// 设置允许跨域的域名,*表示的是允许任何域名进行跨域
res.header('Access-Control-Allow-Origin', '*')
// 设置header类型,表示的是允许任何类型的header
res.header('Access-Control-Allow-Headers', '*')
// 跨域允许的请求方式
res.header('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS')
if(req.method == 'OPTIONS'){
// 让options尝试请求快速结束
res.sendStatus(200)
}else{
next()
}
})
// 支持json
app.use(express.json())
// 支持使用上传中间件
const update = multer({
// 存放的位置
dest:'./public/upload/data'
})
// 允许上传任何东西
app.use(update.any())
// 指定静态资源的路径
app.use(express.static(path.join(__dirname,'public')))
//注册路由
app.use('/test',require('../server/router/testRouter.js'))
// 以get请求则返回值
app.get('/', (req, res) => {
res.send('Hello,express!')
})
app.listen(port, () => {
console.log(`http://localhost:${port}`);
})
启动文件即可访问http://localhost:8888/test/test
总结
以上就是今天要讲的内容,希望对大家有所帮助!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82843.html