2016-06-24 103 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停止執行所需的。