///我有一个包含用于数据库查询的多个函数的文件,我想在节点api文件中使用它,但是每次我通过分解使用函数时,都会抛出一个错误,指出无效的速记属性
//包含所有导出功能的文件。
module.exports = {
//用于发送错误json响应的函数。
sendError = (req, res, err) => {
res.send({ success: 0, err });
},
//用于将数据作为json响应发送的功能。
sendData = (req, res, data) => {
res.send({ success: 1, data });
},
//获取所有数据的功能。
getData = (req, res, dbName) => {
dbName
.find({})
.then(data => {
res.send({success: 1, data: data});
sendData(req, res, data);
})
.catch(err => {
sendError(req, res, err);
});
},
//用于编辑状态的功能。
editStatus = (req, res, status) => {
Property.updateOne(
{ _id: req.params.id },
{ status: status },
(err, resp) => {
if (err) sendError(req, res, err);
else {
sendData(req, res, resp);
}
}
);
},
//用于编辑数据的功能。
editData = (req, res, id) => {
Property.findOne({ _id: id }).then(Property => {
Property.address = req.body.address;
Property.price = req.body.price;
Property.bedroom = req.body.bedroom;
Property.bathroom = req.body.bathroom;
Property.livingroom = req.body.livingroom;
Property.propertytype = req.body.propertytype;
Property.propertynumber = req.body.propertynumber;
Property.streetname = req.body.streetname;
Property.city = req.body.city;
Property.country = req.body.country;
Property.postalcode = req.body.postalcode;
Property.description = req.body.description;
Property.save()
.then(updated => {
res.send(200).json(updated);
})
.catch(err => {
res.send(err);
});
});
},
//添加数据的功能。
setData = (req, res) => {
Property.create(req.body, (err, property) => {
if (err) sendError(req, res, err);
else {
sendData(req, res, property);
}
});
},
//软删除数据的功能
softDelete = (req, res, id) => {
Property.findOne({ _id: id })
.then(Property => {
Property.isDeleted = 1;
Property.save()
.then(data => {
sendData(req, res, data);
})
.catch(err => {
sendError(req, res, err);
});
})
.catch(err => {
sendError(req, res, err);
});
}
}
// Nodeapi文件,其中功能已被重构
const {
getData,
editStatus,
editData,
setData,
softDelete
} = require("../dbFunctions");
//一些使用函数的api //将属性以待处理状态存储在数据库中。
router.post("/api/addProperty", (req, res) => {
setData(req, res);
});
//获取所有属性
router.get("/api/propertyData", (req, res) => {
getData(req, res, Property);
});