cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Apabila router.get("conten1") digunakan dua kali, ralat dilaporkan. tolong bantu

Penerangan gambar

Result1 secara langsung melaporkan ralat, sila bantu

给我你的怀抱给我你的怀抱2816 hari yang lalu715

membalas semua(1)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-05-24 11:40:38

    Kenapa

    1 Apabila laluan perolehan pertama berjaya dihuraikan, pelayan akan memberikan kandungan1 secara langsung tanpa menunggu laluan kedua.

    2. Dalam ekspres, urutan penghalaan adalah bersebelahan jika anda tidak menggunakan seterusnya, maka hanya kaedah panggil balik dalam get() pertama akan dicetuskan secara lalai.

    Penyelesaian

    Segerakkan pertanyaan dan akhirnya berikan bersama

    Saya juga seorang pemula, saya menulis beberapa kod untuk anda menerangkan masalah logik

    
    let data = {};
    router.get('/', function (req, res, next) {
        data = {};
        //模拟DB查询回调
        setTimeout(function () {
            data.user = {id: 1, username: 'zhaojunlike'};
            //传递到下面
            next();
        }, 1000);
    
    });
    router.get('/', function (req, res, next) {
        console.log(data);
        //模拟第二次查询并且输出Render
        setTimeout(function () {
            data.content = {email: 'zhaojunlike@gmail.com'};
            res.render('index', {title: 'Express', data: data});
        }, 1000);
    
    });
    

    balas
    0
  • Batalbalas