新增address接口

uml-backend
P-Jhao 2 weeks ago
parent d9bdac19a6
commit caa6d6ea12

@ -1,42 +1,46 @@
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const cors = require('cors');
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");
const cors = require("cors");
//优先读取环境变量
require("dotenv").config()
require("dotenv").config();
//引入数据库连接
require("./dao/db")
require("./dao/db");
//引入路由
const userRouter = require('./routes/user');
const expressRouter = require("./routes/express")
const userRouter = require("./routes/user");
const expressRouter = require("./routes/express");
const addressRouter = require("./routes/address");
var app = express();
//配置cors
const corsOptions = {
allowedHeaders: ['Content-Type', 'Authorization'],
exposedHeaders: ['Authentication', 'X-Custom-Header'],
allowedHeaders: ["Content-Type", "Authorization"],
exposedHeaders: ["Authentication", "X-Custom-Header"],
credentials: true,
}
};
//为所有源跨域
app.use(cors(corsOptions))
app.use(cors(corsOptions));
//使用各种中间件
app.use(logger('dev'));
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({
extended: false
}));
app.use(
express.urlencoded({
extended: false,
})
);
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, "public")));
//使用路由中间件
app.use('/user', userRouter);
app.use("/express", expressRouter)
app.use("/user", userRouter);
app.use("/express", expressRouter);
app.use("/address", addressRouter);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
@ -47,11 +51,10 @@ app.use(function (req, res, next) {
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
});
module.exports = app;
module.exports = app;

@ -0,0 +1,42 @@
const { handleArrayDaoData } = require("../utils/tools");
const addressModel = require("./model/addressModel");
module.exports.getAddressDao = async function () {
return handleArrayDaoData(await addressModel.findAll());
};
module.exports.addAddressDao = async function (addressData) {
// 如果新增的是默认地址,需要先将其他地址设为非默认
if (addressData.isDefault === 1) {
await addressModel.update({ isDefault: 0 }, { where: {} });
}
await addressModel.create(addressData);
return handleArrayDaoData(await addressModel.findAll());
};
module.exports.updateAddressDao = async function (addressData) {
// 如果更新的是默认地址,需要先将其他地址设为非默认
if (addressData.isDefault === 1) {
await addressModel.update(
{ isDefault: 0 },
{
where: { id: { [Op.ne]: addressData.id } },
}
);
}
await addressModel.update(addressData, {
where: {
id: addressData.id,
},
});
return handleArrayDaoData(await addressModel.findAll());
};
module.exports.deleteAddressDao = async function (id) {
await addressModel.destroy({
where: {
id,
},
});
return handleArrayDaoData(await addressModel.findAll());
};

@ -0,0 +1,46 @@
const sequelize = require("../dbConnect");
const { DataTypes } = require("sequelize");
module.exports = sequelize.define(
"address",
{
receiver: {
type: DataTypes.STRING,
allowNull: false,
},
contact: {
type: DataTypes.STRING,
allowNull: false,
},
fullLocation: {
type: DataTypes.STRING,
allowNull: false,
},
provinceCode: {
type: DataTypes.STRING,
allowNull: false,
},
cityCode: {
type: DataTypes.STRING,
allowNull: false,
},
countyCode: {
type: DataTypes.STRING,
allowNull: false,
},
address: {
type: DataTypes.STRING,
allowNull: false,
},
isDefault: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
},
},
{
freezeTableName: true,
createdAt: false,
updatedAt: false,
}
);

@ -0,0 +1,32 @@
const express = require("express");
const router = express.Router();
const {
getAddressServices,
addAddressServices,
updateAddressServices,
deleteAddressServices,
} = require("../services/addressService");
const { formatResponse } = require("../utils/tools");
router.get("/", async function (req, res, next) {
const data = await getAddressServices();
res.send(formatResponse(0, "", data));
});
router.post("/", async function (req, res, next) {
console.log(req, res);
const data = await addAddressServices(req.body);
res.send(formatResponse(0, "", data));
});
router.put("/", async function (req, res, next) {
const data = await updateAddressServices(req.body);
res.send(formatResponse(0, "", data));
});
router.delete("/", async function (req, res, next) {
const data = await deleteAddressServices(req.body);
res.send(formatResponse(0, "", data));
});
module.exports = router;

@ -0,0 +1,29 @@
const {
getAddressDao,
addAddressDao,
updateAddressDao,
deleteAddressDao,
} = require("../dao/addressDao");
module.exports.getAddressServices = async function () {
return await getAddressDao();
};
module.exports.addAddressServices = async function (addressData) {
console.log(addressData);
// 确保isDefault是数字类型
const data = {
...addressData,
isDefault: addressData.isDefault || 0,
};
return await addAddressDao(data);
};
module.exports.updateAddressServices = async function (addressData) {
// 这里需要提供id
return await updateAddressDao(addressData);
};
module.exports.deleteAddressServices = async function ({ id }) {
return await deleteAddressDao(id);
};
Loading…
Cancel
Save