node.js - Apabila router.get("conten1") digunakan dua kali, ralat dilaporkan. tolong bantu
给我你的怀抱
给我你的怀抱 2017-05-24 11:38:38
0
1
716

Penerangan gambar

Result1 secara langsung melaporkan ralat, sila bantu

给我你的怀抱
给我你的怀抱

membalas semua(1)
我想大声告诉你

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);

});

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan