【发布时间】:2018-10-08 21:10:36
【问题描述】:
你好,我想显示我使用后端 api (nodejs) 从 mongodb 获得的数据 这是事件模型的代码
const mongoose = require('mongoose');
const config = require('../config/database');
// Events Schema
const EventSchema = mongoose.Schema({
eventname: {
type: String,
required: true
},
eventstartdate: {
type: String,
required: true
},
eventenddate: {
type: String,
required: true
},
eventcategorie: {
type: String
},
eventdescription: {
type: String
},
eventimage: {
type: String
}
});
const Event = module.exports = mongoose.model('Event', EventSchema);
这是来自路由器的代码
const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const config = require ('../config/database');
const User = require('../models/user');
const Event = require('../models/event');
//get event by id
router.get('/event/:eventid', (req,res) => {
Event.findById(req.params.eventid, (err, event) =>{
if (err){
return res.status(500).send({message:err.message});
}
if(!event){
return res.status(400).send({message:'Event not found'});
}
res.json({
event: {
id: event._id,
eventname: event.eventname,
eventstartdate: event.eventstartdate,
eventenddate: event.eventenddate,
eventcategorie: event.eventcategorie,
eventdescription: event.eventdescription,
eventimage: event.eventimage
}
});
});
});
这是角度服务中的代码
// GET an event by ID
displayEvent$(id: string) {
return this.http.get(`http://localhost:3000/users/event/${id}`)
.map(response => response.json());
}
然后我创建了一个由按钮触发的简单方法 我传递了一个我知道在数据库中的事件的 id 只是为了测试它
onclickeventpage(){
this.authService.displayEvent$('5ae0c8e96b40a71cd3b772cc').subscribe(event => {
console.log(event)
});
}
这让我在控制台返回了我需要的每个 aribute 事件 但是当我改变这个时
console.log(event)
为此,我可以单独获取每个属性,然后将它们放入 html 中
console.log(event.eventname)
我没有定义
我只想知道如何获取每个事件属性,以便我可以在我的 html 页面中显示它们
【问题讨论】:
-
您正在以“密钥”名称
console.log(event.event.eventname)发送所有内容。这可能应该向您表明不要发送这样的响应,而是简单地返回对象。即res.json(event),而不是你所拥有的。 -
另外,您使用的是旧的
Http Module吗?你应该看看使用4.3中引入的HttpClient Module
标签: html json node.js angular mongodb