首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽象superagent

抽象superagent
EN

Stack Overflow用户
提问于 2015-07-29 06:44:40
回答 2查看 126关注 0票数 0

我们的应用程序由nodejsexpressreactjsnewforms组成。要进行我们正在使用的rest调用:

代码语言:javascript
复制
var RestClient = require('superagent-ls')

我们进行rest调用,如下所示:

代码语言:javascript
复制
cleanBirthDate(callback) {
    var {birthDate} = this.cleanedData
    var formattedDob = moment (birthDate).format('DDMMYYYY')

    RestClient.get(Global.getBirthDateServiceUrl() + '/' + formattedDob)
        .end((err, res) => {
          if (err) {
            callback (err)
          }
          else if (res.clientError) {
            var message = errorsMappingSwitch(res.body.error)
            callback(null, forms.ValidationError(message))
          }
          else {
            callback(null)
          }
        })
  },

我们希望将与RestClient相关的代码移到我们自己的文件中,比如RestCleint.js,然后需要它并在整个应用程序中使用它。通过这样做,我们可以在一个地方应用一些通用的代码(如错误处理,日志记录,根据错误代码重定向到特定的错误页面)。

感谢在这方面的任何帮助。

EN

回答 2

Stack Overflow用户

发布于 2015-07-29 21:22:28

我做了与您要求的完全相同的事情(即使使用superagent)。我在/utils文件夹中使用API代码创建了模块,并在适用的地方需要它们。为了更抽象,我们使用CoffeeScript来创建继承自BaseAPIObject的类,并使用API.Posts.getAll()、.end()等调用这些类。

本文对理解如何编写您自己的模块:Export This: Interface Design Patterns for Node.js Modules非常有帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-07-29 08:49:05

你可以像这样要求它

代码语言:javascript
复制
RestClient.js

export default function callApi(callback) {
//your rest code
// use the callback here in the callback of your call.
}

app.js

import {callApi} from './RestClient';

callApi((err, result) => {
  if (err) console.log(err)
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31688385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档