簡體   English   中英

是否將req.query ['name']的值保存到Node.jS中的變量?

[英]Saving the value of req.query['name'] to a variable in Node.jS?

我正在使用node.js編寫登錄系統,我正在嘗試這樣做:

var auth = req.query['name']

然后我將auth與數據庫查詢的結果進行比較,但是每當我嘗試使用/?name = foo加載頁面時,都會出現此錯誤:

Error: Can't set headers after they are sent.

我當前的代碼是:

var express = require('express');
var app = express();

app.get('/', function(req, res){
    res.send('hello! every thing is working!');
    var auth = req.query['name']
    if (auth === "ozzie"){// I will obviously change this.
        res.send('Hello! Your details have been authenticated')
    }
    else
    {
        res.send('Sorry! That did not work! please try again! ')
    }
});


app.listen(8888, '127.0.0.1'); 
console.log('running on, local Ip + 8888');

問題是您嘗試發送兩個對同一請求的響應,這是第一次

res.send('hello! every thing is working!');

第二次是在if or else塊中。 刪除第一個,它應該可以正常工作或連接輸出,只有一個res.send()傳遞給連接的輸出。

您正在回調的開頭發送響應:

app.get('/', function(req, res){
     res.send('hello! every thing is working!'); // here

然后,在有條件的if - else再次調用同一事物。 由於調用send()方法設置了標頭,因此您最終做了兩次相同的操作。

刪除第一個,就可以了。

注意:出於調試目的,您可以求助於console.log並在運行應用程序主文件的控制台上查看調試信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM