我要刮掉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 :(得分:3)
你必须把它写成:
module.exports = {
scrape: function(url, callback) {
}
};
在test.js中
然后你可以通过test.scrape();
将函数放置到对象中只是无效的JavaScript。您必须指定索引才能生效。或者它也可以是一个数组:
module.exports = [
function scrape(url, callback) {
}
];
您可以通过test[0]();
来调用它。请注意,此处可以选择名称 scrape 。 Why use named function expressions?
另一种选择:
module.exports = function (url, callback) {
};
然后你会把它称为test();
所有这些都不是Node.js特有的。您可以使用标准JavaScript重现相同的行为,将上述示例的module.exports
替换为var test
,访问同一文件中的函数。
答案 1 :(得分:1)
您应该使用的语法是:
module.exports = {
scrape: function(url, callback) {
}
};
因为module.exports
应指向一个对象,并且该函数是字段。
看看here,有一个很好的解释。