存储快递" res"变量并在以后使用它?

时间:2017-06-30 09:52:46

标签: javascript node.js express middleware

我有一个带有express的简单nodeJs服务器,我有一个外部模块,用于处理向请求发送响应。为了使该文件有效,它需要访问express res变量。以前,我曾经把这个变量发送到模块函数来使用它,但后来我尝试使用中间件将这个变量存储在模块中,而不是每次调用函数时都发送它,并且 有效!
这是代码:

// app.js
var http = require('http');
var express = require('express');
var app = express();
var response = require('./response.js');

// store the value of 'res' in the response module
app.use(function(req, res, next) {
    response.setRes(res);
    next();
});

app.get("/", function(req, res){
    response.success("Welcome");                  // works fine
});

app.get("/images", function(req, res){
    response.forbidded("Forbidded");              // works fine
});

var server = http.createServer(app);
server.listen(3000, function(){
    console.log("listening... ");
});

这是另一个模块

// response.js
exports.setRes = function(_res){
    res = _res;
};

exports.success = function(msg){
    res.status(200).send(msg);
};

exports.forbidded = function(msg){
    res.status(403).send(msg);
};

我的问题是:这这是一个好方法吗?如果用户数量增加(我担心一个用户可能获得另一个用户的res ,这会影响我的应用程序)

0 个答案:

没有答案