在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ koa處理xhr請(qǐng)求,服務(wù)端能接受并順利處理,但chorme顯示xhr.stat

koa處理xhr請(qǐng)求,服務(wù)端能接受并順利處理,但chorme顯示xhr.status=404,瀏覽器無法接收response

xhr請(qǐng)求,koa處理,服務(wù)端能接受并順利處理,但無法返回response,xhr.status=404,但將路由里的代碼從向MongoDB獲取數(shù)據(jù) 換成 簡(jiǎn)單的賦值返回,則一切正常,xhr.status=200.如下圖,如果換成注釋內(nèi)的代碼,則正常執(zhí)行

route.post('/login',async function(ctx,next){

var userauth=function () {
     userModel.find({name: ctx.request.body.username}, function (err, user) {
        if (err) {
            throw err;
        }
        if (user.length == 0) {
            console.log(typeof(user));
            console.log(user.length == 0);
            console.log('user not register');
            return "user not register";
        }

        else {
            userModel.find({
                name: ctx.request.body.username,
                password: ctx.request.body.password
            }, function (err, user) {
                console.log(ctx.request.body.username);
                console.log(ctx.request.body.password);
                console.log(user);
                if (err) {
                    throw err;
                }
                console.log("user:" + user)
                if (user == null || user.length == 0) {
                    console.log(user);
                    console.log('password wrong');
                    ctx.response.body = "login fail";
                    return "login fail";
                }
                if (user != null && user.length > 0) {
                    console.log('login sccessful');
                    ctx.response.body = "login successful";
                    return "login successful";
                }
            })
        }

    })
}
var response=await userath();
return response;

/*var initial={ username:"suki",password:'123456'};
console.log(ctx.request.body);
console.log(ctx.request.body.username);
console.log(ctx.request.body.password);
if(ctx.request.body.username==initial.username){
    console.log("登錄成功");
    ctx.response.body="login successful";
    //return response;
}
else {
    console.log("登錄失敗");
    ctx.response.body="login fail";
}
console.log("post login end");*/

})

請(qǐng)問是為什么?以及解決方法。謝謝你們啦~~

回答
編輯回答
悶油瓶

userath()這個(gè)函數(shù)是沒有返回值的
響應(yīng)的話 ctx.body=response

mongoose支持promise,配合await使用

try{
    var user = awiat userModel.find({name: ctx.request.body.username});
    if(user.length == 0){
        ctx.body = "user not register"
    } else {
        let user = await userModel.find({
            name: ctx.request.body.username,
            password: ctx.request.body.password
            });
        if (user == null || user.length == 0) {
            console.log(user);
            console.log('password wrong');
            ctx.body = "login fail";
         
        }
        if (user != null && user.length > 0) {
            console.log('login sccessful');
            ctx.body = "login successful";
        }
    }
} catch(e){
}


2017年4月3日 17:26
編輯回答
骨殘心

沒有執(zhí)行next(),不是很熟悉koa

2018年1月24日 21:50