2016-06-24 64 views
0

我正在处理这个在Heroku上运行的组件,我无法使它正常运行。我遵循thisthis的帖子让它工作。根据heroku logs,我设法在heroku上运行计划任务。我遇到的问题是,如果我在模块中运行代码(我需要按计划运行该代码),它不会运行xray模块,我不知道为什么会发生这种情况。Heroku上的计划工作

这是我的代码,而模块和它的输出,如果我按照附于在这里的链接,这是什么的Heroku会做运行计划任务的一个运行bin文件夹中的代码:

var Xray = require('x-ray'); 

// helpers 
var x = Xray({ 
    filters: { 
    cleanPrice: function (value) { 
     return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value 
    }, 
    whiteSpaces: function (value) { 
     return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value 
    } 
    } 
}); 

console.log("START - Scraping categories..."); 

x('http://google.com', 'title')(function (err, title) { 
    console.log(title) // Google 
}) 

λ斌\节点初始化 START - 刮痧类... 谷歌

这是一个模块和输出内我的代码

module.exports = { 
    start: function() { 

    var Xray = require('x-ray'); 

    // helpers 
    var x = Xray({ 
     filters: { 
     cleanPrice: function (value) { 
      return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value 
     }, 
     whiteSpaces: function (value) { 
      return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value 
     } 
     } 
    }); 

    console.log("START - Scraping categories..."); 

    x('http://google.com', 'title')(function (err, title) { 
     console.log(title) // Google 
    }) 

    } 
} 

输出

λ斌\节点初始化 START - 刮痧类...

我缺少单词 “谷歌”。为什么会发生这种情况,如果我把我的代码在一个模块内?

回答

0

的问题是,在实际工作

#! /app/.heroku/node/bin/node 

"use strict"; 

var app = require('../src/app.js'); 
function initScrape() { 
    app.start(); 
} 
initScrape(); 
process.exit(1); // tell node to exit (prevent promise) 

通过添加process.exit(1);我是防止任何承诺得到解决。这是nodejs停止执行所需的。