这是我的应用程序,我需要了解一些模型问题并想了解它如何与前端一起工作 (MeanStack)
This is my app I need to understand some models issue and want to understand how it work with frontend (MeanStack)
我在我的应用中使用了两个模型,这里是模型
var mongoose=require("mongoose");
var Schema = mongoose.Schema;
var schema = new Schema({
content:{type:String, required:true},
user:{type:mongoose.Types.Objectid, ref:'User'}
});
module.exports=mongoose.model('message',schema);
var mongoose=require("mongoose");
var Schema = mongoose.Schema;
var schema = new Schema({
firstName:{type:String,required:true},
lastName:{type:String,required:true},
password:{type:String,required:true},
email:{type:String, required:true,unique:true},
});
我的两个问题如下:
1 至于像 firstName 这样的每个字段的架构,我都将其设为必填项:true 因此,当我使用 Postman 时,如果我不提供 firstName,我将收到该字段必填的错误消息。我的问题是,如果我不提供名字,任何人都可以给我一个前端的小片段,它会给我一个错误,但等待这个要求是在后端,所以如果我不提供,我怎么能在前端得到错误?不要提供名字。
2 实际上,当某些用户发送消息时,我正在做的事情是,我从用户集合中获取了他的消息,我使用参考获取了他的 ID 名称和姓氏,我知道如何使用邮递员进行操作,但实际上我是我对如何使用 angular2+ 从前端做到这一点感到困惑。任何人都可以在这方面帮助我,为我提供一个小的前端界面或一些代码片段以及一些可以执行此操作的解释吗?
看起来您可能对全栈开发有点陌生,不用担心,这两个都非常简单。
- Validation of fields in the frontend and backend
您应该在前端和后端验证输入。在前端,您可以使用 Angular 检查字段是否为 null 或空,甚至 运行 正则表达式检查它是否是您期望的有效格式。你如何做到这一点将在很大程度上取决于你的前端 HTML 是什么样的。如果您想对此提出进一步的建议,我建议您提出一个新问题,专门在前端解决这个问题。但是,如果您只在 Whosebug 中搜索 "angular 7 validate input".
,您会找到很多答案
要在后端进行验证,您可能需要一些位于 express.js 端点处理程序中的代码。您可以检查通过主体的值,对其进行任何检查。如果通过则继续创建您的数据库记录,如果没有通过则 return 出错。如果您的应用程序足够大,您可能还希望 运行 检查更接近您的数据库模型,但现在如果它是一个非常小的应用程序,在边缘验证可能会让您走得足够远。
这是您可能会使用的 express.js 验证类型的示例:
router.post("/message", (req, res, next) => {
if (!req.body.firstName) {
return res.status(400).json({error: "a meaningful error message"});
}
// The validation has passed, do whatever you want now
});
- Frontend HTTP requests in angular 2+
在 angular 2 中进行 HTTP 调用相当简单,the documentation provides a full guide on making http calls which I would suggest following.
如果您有具体的问题或问题,请随时回来提出另一个问题,但由于您没有提供当前尝试的代码,因此很难给出适合您的代码的答案。
我在我的应用中使用了两个模型,这里是模型
var mongoose=require("mongoose");
var Schema = mongoose.Schema;
var schema = new Schema({
content:{type:String, required:true},
user:{type:mongoose.Types.Objectid, ref:'User'}
});
module.exports=mongoose.model('message',schema);
var mongoose=require("mongoose");
var Schema = mongoose.Schema;
var schema = new Schema({
firstName:{type:String,required:true},
lastName:{type:String,required:true},
password:{type:String,required:true},
email:{type:String, required:true,unique:true},
});
我的两个问题如下:
1 至于像 firstName 这样的每个字段的架构,我都将其设为必填项:true 因此,当我使用 Postman 时,如果我不提供 firstName,我将收到该字段必填的错误消息。我的问题是,如果我不提供名字,任何人都可以给我一个前端的小片段,它会给我一个错误,但等待这个要求是在后端,所以如果我不提供,我怎么能在前端得到错误?不要提供名字。
2 实际上,当某些用户发送消息时,我正在做的事情是,我从用户集合中获取了他的消息,我使用参考获取了他的 ID 名称和姓氏,我知道如何使用邮递员进行操作,但实际上我是我对如何使用 angular2+ 从前端做到这一点感到困惑。任何人都可以在这方面帮助我,为我提供一个小的前端界面或一些代码片段以及一些可以执行此操作的解释吗?
看起来您可能对全栈开发有点陌生,不用担心,这两个都非常简单。
- Validation of fields in the frontend and backend
您应该在前端和后端验证输入。在前端,您可以使用 Angular 检查字段是否为 null 或空,甚至 运行 正则表达式检查它是否是您期望的有效格式。你如何做到这一点将在很大程度上取决于你的前端 HTML 是什么样的。如果您想对此提出进一步的建议,我建议您提出一个新问题,专门在前端解决这个问题。但是,如果您只在 Whosebug 中搜索 "angular 7 validate input".
,您会找到很多答案要在后端进行验证,您可能需要一些位于 express.js 端点处理程序中的代码。您可以检查通过主体的值,对其进行任何检查。如果通过则继续创建您的数据库记录,如果没有通过则 return 出错。如果您的应用程序足够大,您可能还希望 运行 检查更接近您的数据库模型,但现在如果它是一个非常小的应用程序,在边缘验证可能会让您走得足够远。
这是您可能会使用的 express.js 验证类型的示例:
router.post("/message", (req, res, next) => {
if (!req.body.firstName) {
return res.status(400).json({error: "a meaningful error message"});
}
// The validation has passed, do whatever you want now
});
- Frontend HTTP requests in angular 2+
在 angular 2 中进行 HTTP 调用相当简单,the documentation provides a full guide on making http calls which I would suggest following.
如果您有具体的问题或问题,请随时回来提出另一个问题,但由于您没有提供当前尝试的代码,因此很难给出适合您的代码的答案。