javascript - 自动导出 Node 功能的最佳实践

标签 javascript node.js express

目标

我是 Node 新手,我正在尝试以一种不必跟踪导出我在该文件中编写的每个函数的方式编写代码。

<小时/>

步骤

我有一个函数

general.js

import request from 'request-promise'
import env from 'dotenv'
const dotenv = env.config();

function getInfo(req, res)
{
    var $mac    = req.body.mac;
    return new Promise((resolve, reject) => {
        request({ uri: `${process.env.API_HOST}/${$mac}` })
            .then((cpe) => resolve(JSON.parse(cpe).data))
            .catch((error) => reject(error));
    });

}

module.exports = {
    getInfo
};

如何调整它以便我的函数自动导出?

<小时/>

我已经尝试过

import request from 'request-promise'
import env from 'dotenv'
const dotenv = env.config();

module.exports = () => {
    let general = {};

    general.getInfo = ($mac) => {
        return new Promise((resolve, reject) => {
            request({ uri: `${process.env.API_HOST}/${$mac}` })
                .then((count) => resolve(JSON.parse(count).data))
                .catch((error) => reject(error));
        });
    }
    return general;
}

我不断得到

Error: Route.post() requires a callback function but got a [object Undefined]

如何进一步调试?

最佳答案

也许只需将您的函数直接放入导出对象中即可:

module.exports = {
  getInfo(req, res) {
    //...
  },
  // type here ...
};

或者你转到 Typescript,然后你可以这样做:

export function getInfo(req, res) {
  //...
}

关于javascript - 自动导出 Node 功能的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49908285/

相关文章:

node.js - 无法运行任何 Gulp 命令

javascript - 在 Sencha Touch 的面板中加载外部 HTML 文件

javascript - 使用 NodeJS 的 Firebase 身份验证

node.js - 存储后如何从 MongoDB 中检索二进制文件?

javascript - CasperJS 中的 Express app.get() 等效项

node.js - 如何显示弹出窗口而不是重定向到 Facebook?

javascript - 在 Nodejs/Express 中上传图片最简单的方法是什么

javascript - 在需要模块之前使用 require.js 运行公共(public)代码

JavaScript 如何将对象 document.createElement 转换为字符串

javascript - 无法使用客户 ID 创建 Braintree 客户端 token