簡體   English   中英

NodeJS里面的'res沒有定義'

[英]Nodejs 'res is not defined' inside require

對於我的api,我需要一個單獨的文件來設置cookie(使用cookie-parser)。 但是resreq不會傳遞到所需的文件...

index.js

 app.get('/api/user/:username', function(req, res) {   
 urlUsername = req.params.username;
 require('./set/cookie')
  }); 

集/ cookie.js

res.cookie('login_session', urlUsername) // returns 'res' not defined 

如您所見,部分解決了這個問題,我設置了urlUsername 但是肯定有另一種方法:)?

謝謝

您需要像這樣修改代碼

======= set / cookie.js ==========

module.exports = function(res) { // accept res parameter
  res.cookie('login_session', urlUsername)
};

=========== index.js ===========

app.get('/api/user/:username', function(req, res) {   
  urlUsername = req.params.username;
  require('./set/cookie')(res); // pass res to module
}); 

您需要在根據需要創建的模塊中使用“ module.exports ”,以返回具有相同名稱的對象。

您需要修改cookie.js文件,以便它創建一個具有緩存功能的對象,並且可以將“ res”對象傳遞給它,以便在范圍內可用

例如,您的cookie.js應該如下所示:

module.exports.cookie = function(res){
    return {
        cache: function(){
            /*your cookie code*/
            return res.cookie('login_session', urlUsername);
        }
    };
}

這將返回一個具有緩存方法並已將響應對象傳遞給它的對象。 然后,您可以通過調用以下命令來調用它:

app.get('/api/user/:username', function(req, res) {   
    urlUsername = req.params.username;
    var cookie = require('./set/cookie').cookie(res);
    cookie.cache();
}); 

暫無
暫無

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

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