数据未设置为默认值

时间:2021-06-26 08:06:58

标签: javascript mongodb web next.js

当我调用 getDataPrevDay 函数时,出现错误:“无法读取未定义的属性‘apps’。” console.log(doc) 记录 [],但如果 doc 未定义或为空,则应该将其设置为 dataModel。当我更改处理程序代码 if(doc.first_name == undefined || doc.first_name == null) 时,它总是将 doc 设置为 dataModel,即使可以从数据库中获取数据

handler.get(async (req, res) => {
  const {date} = req.query;

  const dataModel = 
 [{
  'first_name': 'no data',
  'last_name': 'no data',
  'number': 'no data',
  'email': 'no data',
  'date': date,
  'time': 'no data'
}];


let doc = [];
if(date) {
  doc = await req.db.collection('db').find({date: date}, {projection : {_id: 0}}).toArray();
} 
if(doc == undefined || doc == null) {
  doc = dataModel;
}

res.json(doc);
});

这就是它的名字

const admin = ({data}) => {
    const [appointment, setAppointment] = useState(data);

    let currentDate = moment(appointment[0].apps.date).format("YYYY, MMM, DD")
    

    const getDataPrevDay = async () => {
        let prevDay = moment(currentDate).subtract(1, "day").format("YYYY, MMM, DD");

        const res = await fetch(`http://localhost:3000/api/usersdb?date=${prevDay}`)
        let json = await res.json();
        json = json.map(apps => ({apps}))
        setAppointment(json)
    }


...

return (
<button className={styles.button} onClick={getDataPrevDay}> Previous Day </button>
)

export async function getServerSideProps(context){
    const currentDate = moment().format('YYYY, MMM, DD')
    const res = await fetch(`http://localhost:3000/api/usersdb?date=${currentDate}`)
    let json = await res.json();
    json = json.map(apps => ({apps}))

    return {
        props: {
            data: json
        },
    };
}

export default admin

0 个答案:

没有答案