代码拉取完成,页面将自动刷新
同步操作将从 20级软件2班/nodejs简单demo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
'use strict'
const Koa = require('koa');
const router = require('koa-router')();
const cors = require('koa-cors');
const bodyParser = require('koa-bodyparser');
const { Sequelize, DataTypes } = require('sequelize');
// 方法 3: 分别传递参数 (其它数据库)
const sequelize = new Sequelize('ChinaInfo', 'sa', '123456', {
host: 'localhost',
dialect: 'mssql' /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
});
// (async () => {
// try {
// await sequelize.authenticate();
// console.log('Connection has been established successfully.');
// } catch (error) {
// console.error('Unable to connect to the database:', error);
// }
// })();
// 定义数据模型
let Blogs = sequelize.define('Blogs', {
'Title': {
type: DataTypes.STRING,
allowNull: false
},
'Content': {
type: DataTypes.STRING,
allowNull: false
}
})
function init() {
// 同步模型到数据库
sequelize.sync({ force: true }).then(() => {
Blogs.bulkCreate([
{
Title: '明天你要上新闻啦',
Content: '黎妹子的新闻'
},
{
Title: '谢天谢地你来啦',
Content: '孟叔叔来了'
},
{
Title: '年三十',
Content: '要过年了'
},
])
})
}
// init()
const app = new Koa();
router
.get('/blogs', async (ctx) => {
// 获得前端传回的分页参数,pageIndex是指获取第几页的数据,pageSize是指页的记录数
let pageIndex = parseInt(ctx.request.query.pageIndex);
let pageSize = parseInt(ctx.request.query.pageSize);
// 使用findAndCountAll函数,直接返回记录和总数量
let { rows, count } = await Blogs.findAndCountAll({
offset: (pageIndex - 1) * pageSize,
limit: pageSize,
// where:{
// }
})
// 响应,返回给前端的数据
ctx.body = {
code: 1000,
msg: '获取博客列表数据成功',
data: {
pageIndex,
pageSize,
totalCount: count,
rows
}
}
})
.post('/blogs', async (ctx) => {
let obj = ctx.request.body;
console.log(obj);
let entity = await Blogs.create(obj);
ctx.body = {
code: 1000,
msg: '新增博客成功',
data: entity
}
})
.put('/blogs/:id', async (ctx) => {
let id = ctx.request.params.id;
let obj = ctx.request.body;
console.log(id);
console.log(obj);
let entity = await Blogs.update(obj, {
where: {
id: id
}
})
let result = await Blogs.findOne({
where: {
id: id
}
})
ctx.body = {
code: 1000,
msg: '修改博客成功!',
data: result
}
})
.delete('/blogs/:id', async (ctx) => {
let id = ctx.request.params.id;
console.log(id);
await Blogs.destroy({
where: {
id: id
}
})
ctx.body = {
code: 1000,
msg: '删除博客成功',
data: null
}
})
app.use(cors())
app.use(bodyParser())
app.use(router.routes())
let port = 8000;
app.listen(port)
console.log(`程序运行在如下地址:http://localhost:${port}`);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。