来自其他快递文件的呼叫功能

问题描述:

我要抓取20个站点,为了让它更容易我想划分每个站点在不同文件中的每个刮擦功能,但是当我这样做时,我不断收到来自其他快递文件的呼叫功能

function scrape(url, callback) { 
     ^^^^^^^^^ 

SyntaxError: Unexpected identifier 
在我的索引

我有这个

var test = require('../services/test.js'); 

router.get('/scrape', function(req, res, next) { 

    test.scrape("url", function(error){ 
    if (!error) { 
     res.json({succees: "scraped"}); 
    } else { 
     res.json({error: error}); 
    } 

    }); 

}); 

和test.js我有这样的事情

module.exports = { 

    function scrape(url, callback) { 



    } 
}; 
+0

有没有一种方法可以改善我的答案?只是问,因为你还没有接受答案。 –

你必须把它写这样的:

module.exports = { 
    scrape: function(url, callback) { 

    } 
}; 
在test.js

然后你就可以通过test.scrape();

称之为这是根本不成立的JavaScript像你这样为对象放置功能。您必须指定一个索引才能生效。或者它也可能是一个数组:

module.exports = [ 
    function scrape(url, callback) { 

    } 
]; 

你会被test[0]();注意称呼它的名字是可选在这里。 Why use named function expressions?

另一种选择:

module.exports = function (url, callback) { 

}; 

那么你会这样称呼它test();

所有这一切都没有什么Node.js加载特定的。您可以通过用var test替换上述示例的module.exports,访问相同文件中的函数,从而使用标准JavaScript重现相同的行为。

你应该使用的语法是:

module.exports = { 
    scrape: function(url, callback) { 

    } 
}; 

由于module.exports应指向一个对象,而且功能上的IT领域。

看一看here,这里有一个很好的解释。