小编Oli*_*Oli的帖子

在不失去范围的情况下重构 Node.js 函数

我在重构我的 Node.js 应用程序时遇到问题。

考虑以下使用express的(非常假设的)示例,其中accessResource只是使用我无权更改的回调的任意函数的模拟。

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

app.get('/', function(request, response) {
  accessResource(request, response, function sendResponse(err, data) {
    if (err) {
      return response.status(500).send({"message": err});
    } else {
      return response.status(200).send({"message": data});
    }
  });
});

app.listen(8080);
Run Code Online (Sandbox Code Playgroud)

我想将sendResponse重构为一个独立的函数,以便我最终可以将其移动到自己的模块中。

app.get('/', function(request, res) {
  accessResource(request, response, sendResponse);
});

function sendResponse(err, data) {
    if (err) {
      return response.status(500).send({"message": err});
    } else {
      return response.status(200).send({"message": data});
    }
}
Run Code Online (Sandbox Code Playgroud)

现在显然这不再起作用,因为响应在sendResponse范围内不可用。

似乎我必须将sendResponse包装在另一个函数中,但最重要的是,我觉得我在这里缺少一个基本概念......

javascript refactoring node.js

0
推荐指数
1
解决办法
484
查看次数

标签 统计

javascript ×1

node.js ×1

refactoring ×1