gpt4 book ai didi

node.js - 不将数据从服务方法传递到 mongoose get 路由以使用 Angular IO 查询数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:20 25 4
gpt4 key购买 nike

我将数据从模板获取到组件层,然后将其传递到服务文件。我在两个级别的 console.log() 中都看到了它。当我在我想要在服务器中命中的路由旁边的方法中传递变量时,它没有被传递,或者我没有正确访问它(可能是这种情况),并且我已经以我知道的方式弯曲了它。

当我在 NodeJS 服务器中使用 console.log() (使用express、body-parser 和 mongoose)时,它会返回带有 req.body{} ,如果我尝试在末尾添加键,则返回未定义。只需 req,我就得到了巨大的响应,但解析所有信息后,我真正能看到的是方法键/值以及我尝试使用服务文件方法访问的路线的键/值。

我已经尝试了我能想到的所有方法,我使用了 postman 中的路线,并且效果很好。

I console.loged req req.params and req.URL with no success.

其他文件(组件和服务)是 console.logging 数据,因此我知道它是从模板中的 *ngFor 传递的,该模板返回数据库中存储的所有“tasks”的查询(键是 title、description 和默认设置 false )。我真的不知道还能做什么。

我昨天使用删除方法和 findByIdAndDelete mongoose 方法也遇到了同样的问题。 id 作为字符串从模板一直传递到服务文件,但由于某种原因没有显示在 req、req.body 或 req.body._id 中。组件和服务文件中的 console.log() 显示了这一点。

{ mongoose express / using json with the body-parser to return data}

app.get('/task-info', function(req, res){
console.log('SERVER_:', req.body._id);
Task.findById({_id: req.body.id}, function(err, task) {
if(err){
console.log('ERROR_QUERY_FOR_DATA_INFO:', err)
res.json({message: 'ERROR_QUERY_FOR_DATA_INFO', data: err})
} else {
console.log('SUCCESS_QUERY_ONE_TASK_INFO');
res.json({message: 'SUCCESS_QUERY_ONE_TASK_INFO', data: task})
}
})
})



{ http.service.ts the console.log() is returning the task id }

getTaskInfo(task) {
console.log('SINGLE_TASK_INFO_SERVICE_FILE:', task._id);
return this._http.get('task-info', task);
}


{ app.component.ts the console.log() is returning the entire task }

singleTask(task: any) {
const observable = this._httpService.getTaskInfo(task);
observable.subscribe(data => {
console.log('SINGLE_TASK: ', data);
});
}



----The app.component.html----



<div>
<h1>Tasks</h1>
<ul *ngIf="allTasksList" class="all-tasks-ul">
<li *ngFor="let task of allTasksList.tasks">{{ task.title }}
<div class="edit-task-btn">
<button (click)="singleTask(task)">Info</button>
</div>
<div class="info-task-btn">
<button (click)="changeTask(task)">Edit</button>
</div>
<div class="delete-task-btn">
<button (click)="deleteOneTask(task._id)">Delete</button>
</div>
</li>
<div *ngIf="editTask" class="editing-task-div">
<h1>Editing {{ editTask.title }}</h1>
<form (submit)="updateTask(editTask)">
<label>
Update Task:
<input type="text" name="editTask.title" [(ngModel)]="editTask.title" id="">
</label><br>
<label>
Update Task Description:
<input type="text" name="editTask.description" [(ngModel)]="editTask.description" id="">
</label><br>
<input type="submit" value="Update Task">
</form>
</div>
</ul>
</div>

SERVER_: undefined

这是控制台打印的内容,然后是错误查询的错误。就像我说的,在 POSTMAN 中,相同的 get 检索数据。

最佳答案

首先,您不会将正文发送到 GET 请求,也不会这样做,只需发送参数或查询参数,如下所示:

router.get('/getPost/:id', (req, res, next) => {
let id = req.params.id;
// Make your Query Here
})

在你的 Angular 端使用这个

let id = task.id;
this._httpService.get(`task-info/${id}`);

关于node.js - 不将数据从服务方法传递到 mongoose get 路由以使用 Angular IO 查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56319072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com