如何在另一条路线内调用一条路线的功能?

时间:2019-10-12 05:38:28

标签: node.js express

在路由polygone.js中定义了一个函数:

var express = require('express');
var router = express.Router();
...
function transformPolygoneFromDbToText(polygoneArrayTxt, cb) {
    var sommets = JSON.parse(polygoneArrayTxt) , ret = "" , separator = "";
    if (polygoneArrayTxt != "") {
        async.eachOf(sommets, function (sommet, position, cb_) {
            var point = JSON.parse(sommet);
            var longitude = point[0], latitude = point[1];
            ret += separator + longitude + " " + latitude;
            separator = ",";
            cb_();
        }, function () {
            cb(ret);
        });
    }
    else
        cb("");
}

module.exports = router;

我想从另一个transformPolygoneFromDbToText调用函数route。该怎么做?

1 个答案:

答案 0 :(得分:2)

对于功能transformPolygoneFromDbToText,如果您有任何依赖关系,请将其移至单独的文件中,以便可以在任何地方重用它。

创建文件名utils.js

function transformPolygoneFromDbToText(polygoneArrayTxt, cb) {
    var sommets = JSON.parse(polygoneArrayTxt) , ret = "" , separator = "";
    if (polygoneArrayTxt != "") {
        async.eachOf(sommets, function (sommet, position, cb_) {
            var point = JSON.parse(sommet);
            var longitude = point[0], latitude = point[1];
            ret += separator + longitude + " " + latitude;
            separator = ",";
            cb_();
        }, function () {
            cb(ret);
        });
    }
    else
        cb("");
}

module.exports = { transformPolygoneFromDbToText }

并像下面一样在路由文件中导入并导出要在app.js或index.js中使用的路由

const { formatErrorResponse } = require('./utils');