koa2 info//新建一个koa2项目
初始化项目
npm install
npm i sequelize
npm i pg
代码
config.js
module.exports = {
"development": {
"username": "postgres",
"password": "root",
"database": "mydb",
"host": "127.0.0.1",
"dialect": "postgres"
}
// "test": {
// "username": "postgres",
// "password": "root",
// "database": "database_test",
// "host": "127.0.0.1",
// "dialect": "postgres"
// },
// "production": {
// "username": "postgres",
// "password": "root",
// "database": "database_production",
// "host": "127.0.0.1",
// "dialect": "postgres"
// }
}
models.index.js
//models/index.js
var Sequelize = require('sequelize');
var db = require('../config/config');
var sequelize = new Sequelize(db.database, db.username, db.password, db.development);
// importing models
// 新代码
var User = require("../models/user")(sequelize, Sequelize.DataTypes);
// creating associations
User.sync({ force: true }).then(async() => {
// Table created
return await User.create({
firstName: 'John',
lastName: 'Hancock'
});
});
module.exports = {
User
};
/models/user.js
//models/user.js
module.exports = (sequelize, DataTypes) => {
return sequelize.define('user', {
username: DataTypes.STRING,
password: DataTypes.STRING
});
};
routers/users.js
//routes/users.js
const router = require('koa-router')();
const models = require('../models/index');
router.prefix('/test')
// 新增用户
router.post('/save', async(ctx) => {
const { username, password } = ctx.request.body;
const newUser = await models.User.create({
username,
password
});
ctx.body = {
message: 'ok',
data: newUser
}
console.log('新增数据完成');
});
// 获取用户列表
router.get('/', async(ctx) => {
const users = await models.User.findAll();
ctx.body = {
message: 'ok',
data: users
}
console.log('检查完全部数据');
});
// 获取指定用户信息
router.get('/:id', async(ctx) => {
const { id } = ctx.params;
const user = await models.User.findById(id);
ctx.body = {
message: 'ok',
data: user
}
});
// 更新用户信息
router.put('/:id', async(ctx) => {
const { id } = ctx.params;
const { username, password } = ctx.request.body;
const user = await models.User.update({
username,
password
}, {
where: {
id
}
});
ctx.body = {
message: 'ok',
data: user
}
});
// 删除用户
router.delete('/:id', async(ctx) => {
const { id } = ctx.params;
await models.User.destroy({
where: {
id
}
});
ctx.body = {
message: 'ok'
}
});
module.exports = router;
app.js 加入
const users = require('./routes/users')
app.use(users.routes(), users.allowedMethods())
完成后开始测试运行