node.js - Models.Address 不是 Node Js 中的构造函数
问题描述
基本上我正在尝试使用 userId 添加地址并将地址保存在不同的集合中,例如我有两个模型,即用户和地址,其中,在用户中我们生成用户数据,之后我们想使用添加、编辑或删除地址地址集合中的 userId。主要是两个模型不同,我想使用 UserId 将地址部分存储在地址集合中。
地址.js
"use strict";
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var AddressSchema = new Schema({
userId: {
type: mongoose.Types.ObjectId,
ref: "User",
required: true
},
type: {
type: String,
unique: true,
trim: true,
required: true
},
latitude: {
type: Number,
required: true
},
longitude: {
type: Number,
required: true
},
address: {
type: String,
required: true
},
locality: {
type: String,
required: true
},
landmark: {
type: String,
required: true
}
},
// system generated
{
timestamps: true
});
module.exports = mongoose.model("Address", AddressSchema);
这是我的 AddressRoute addressRoute.js
router.post("/addAddress", validator.headers(Validations.token), validator.body(Validations.addAddress), Auth.commonUser, (req, res) => {
const response = {
success: false,
message: "",
data: {}
};
// send only the data that is required by the controller
logger.info(req.body);
Controllers.UserAddress.addAddress(req.admin, req.body)
.then(data => {
if (!data) {
console.log(data)
return UniversalFunction.sendError(res)
} else {
const message = "Address added successfully";
return UniversalFunction.sendSuccess(res, data, message)
}
})
.catch(error => {
console.log(error)
logger.error(error);
return UniversalFunction.sendCatchError(res, error.message)
});
});
module.exports = router
地址控制器.js
"use strict";
require('dotenv').config()
const Service = require('../services')
let _userAddress = {}
_userAddress.addAddress = async (userData, payloadData) => {
try {
console.log(userData)
console.log("PayLoadData:- ",payloadData)
payloadData.adminId = userData.id
await Service.AddressService.create(payloadData)
return {}
} catch (error) {
console.log("error :-", error)
throw error
}
}
module.exports = _userAddress
地址服务.js
"use strict";
/*
* Library for storing and editing data
*/
// Dependencies
const Models = require("../models");
// Container for module (to be exported)
const _service = {};
// Create and Save a new admin
_service.create = (objToSave) => {
var newUser = new Models.Address(objToSave);
return newUser.save().then(response => {
return response.toObject();
});
};
module.exports = _service
地址验证.js
"use strict";
require('dotenv').config()
const Joi = require('@hapi/joi');
const token = Joi.object({
authorization: Joi.string()
});
const addAddress = Joi.object({
userId : Joi.string().required(),
type : Joi.string().required(),
address : Joi.string().required(),
locality : Joi.string().required(),
landmark : Joi.string().required()
});
module.exports = {
token,
addAddress
}
解决方案
推荐阅读
- javascript - 将文本移动到父级的合理方法
- 进入新的?
- r - 如何替换类表矩阵中的值?
- ffmpeg - 如何通过使用单个 ffmpeg 命令从两个不同视频中获取特定时隙来垂直合并视频?
- ruby-on-rails - Sidekiq 打开开信器而不是发送邮件
- powershell - PowerShell 运行 Ultraedit 脚本
- c# - 更新后无法访问钥匙串中以前存储的值
- java - 如何使 if-else 在我的 try-catch 语句中正常工作?
- java - 将 List.of 用于具有单个元素而不是 Collections.singletonList 的不可变列表
- c++ - 模板是编译时多态性的一种方式吗
- swift - 压缩和解压缩文件夹