node.js - Sails.js - 如何跨多个 Controller 操作重用(大部分)此代码?

标签 node.js model-view-controller sails.js

我正在使用特定的 npm 模块获取提要,我想做的是使用相同的代码创建多个操作,尽管我不想重复整个代码。这是我的 Controller :

module.exports = {

    buzzy: function (req, res) {
        var FeedParser = require('feedparser'),
            request = require('request');

        var req = request('http://rss.nytimes.com/services/xml/rss/nyt/Technology.xml'),
            feedparser = new FeedParser();

        req.on('error', function (error) {
            // handle any request errors
        });
        req.on('response', function (res) {
            var stream = this;

            if (res.statusCode != 200) return this.emit('error', new Error('Bad status code'));

            stream.pipe(feedparser);
        });


        feedparser.on('error', function (error) {
            // always handle errors
        });
        feedparser.on('readable', function () {
            // This is where the action is!
            var stream = this,
                meta = this.meta // **NOTE** the "meta" is always available in the context of the feedparser instance
                ,
                item;

            while (item = stream.read()) {
                var newData = item;                        
                   Buzzfeed.create({'title': newData.title, 'url': newData.link, 'source': 'nytimesTech', 'category': 'tech'}, function (err, newTitles) {
                        });                       

            }
        });

    }
};

与“嗡嗡” Controller 操作非常相似,我想创建多个操作 - 以下是每个 Controller 中唯一的行

var req = request('http://rss.nytimes.com/services/xml/rss/nyt/Technology.xml'),

Buzzfeed.create({'title': newData.title, 'url': newData.link, 'source': 'nytimesTech', 'category': 'tech'}, function (err, newTitles) {
                            });  

很好奇,实现这个的最佳方法是什么,所以我不再重复?

最佳答案

您可以使用服务。如果您有在代码中的多个位置使用的函数,则可以使用它们。

请参阅此处的文档:Services

关于node.js - Sails.js - 如何跨多个 Controller 操作重用(大部分)此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27496146/

相关文章:

node.js - 获取数组中元素的索引

javascript - 使用 Redis 扩展 Socket.IO,然后扩展 Redis 本身

c# - 如何在 Javascript 中显示 C# 模型列表的某一方面?

node.js - 我们可以在 Sails.js 中设置单个模型属性的 Blueprint "populate"属性吗?

node.js - Thinky ORM + RethinkDB - 多对多关系

jquery - materialize-css 和 Webpack 问题,忽略大小写时具有相同名称的模块,JQuery

ruby-on-rails - 如何在 rails 中添加具有多个条目的特定迁移

iphone - 通过卷页关闭 modalviewcontroller

javascript - SailsJS 将对象/变量传递给布局 View 的正确方法

postgresql - SailsJS 通过关联 : how to create association?