我们的应用程序由nodejs、express、reactjs和newforms组成。要进行我们正在使用的rest调用:
var RestClient = require('superagent-ls')我们进行rest调用,如下所示:
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,然后需要它并在整个应用程序中使用它。通过这样做,我们可以在一个地方应用一些通用的代码(如错误处理,日志记录,根据错误代码重定向到特定的错误页面)。
感谢在这方面的任何帮助。
发布于 2015-07-29 21:22:28
我做了与您要求的完全相同的事情(即使使用superagent)。我在/utils文件夹中使用API代码创建了模块,并在适用的地方需要它们。为了更抽象,我们使用CoffeeScript来创建继承自BaseAPIObject的类,并使用API.Posts.getAll()、.end()等调用这些类。
本文对理解如何编写您自己的模块:Export This: Interface Design Patterns for Node.js Modules非常有帮助。
发布于 2015-07-29 08:49:05
你可以像这样要求它
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)
});https://stackoverflow.com/questions/31688385
复制相似问题