我正在将数据从模板获取到组件层,然后将其传递到服务文件。我在两个级别的console.log()
中都看到了它。当我在要在服务器中命中的路由旁边的方法中传递变量时,它没有被传递,或者我没有正确地访问它(可能是这种情况),并且我已经尽力了。 >
当我在NodeJS服务器中console.log()
(使用express,body-parser和mongoose )时,它返回{}
和req.body
,如果我未定义,则返回undefined尝试在最后添加密钥。仅凭请求,我得到了巨大的响应,但是解析所有我能真正看到的所有信息是方法键/值以及我试图通过服务文件方法访问的路由的键/值。
我已经尝试了所有可以想到的方法,并在邮递员中使用了该路线,并且效果很好。
我用console.log记录了req req.params和req.URL都没有成功。
其他文件(组件和服务)是console.logging
数据,因此我知道它是从模板中的*ngFor
传递过来的,该模板返回对所有'tasks
的查询'存储在数据库中(键是标题,描述和默认设置false)。我真的不知道该怎么办。
昨天我在使用删除方法和findByIdAndDelete
猫鼬方法时也遇到了同样的问题。 id
作为字符串从模板一直传递到service file
,但由于某种原因未显示在req, req.body, or 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_:未定义
这是conole正在打印的内容,然后是来自错误查询的错误。就像我说的那样,在 POSTMAN 中,相同的get检索数据。
答案 0 :(得分:0)
首先,您不要将正文发送到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}`);