[英]Trying to run a script with Express on localhost:3000
堅持第一次嘗試基本應用程序。 當在控制台中單獨運行時,Scraper.js會刮擦一個URL並將返回的數組寫到文檔obj中,以便該部分起作用。 現在,我需要的是Express服務器,只要我打開localhost:3000即可運行腳本,但不確定如何執行。
|node_modules
|package.json
|public
|-index.html (boilerplate HTML. Not importing anything)
|src
|-scraper.js
|index.js
index.js:
var scraperjs = require('scraperjs');
var express = require('express');
var app = express()
app.use(express.static(__dirname + '/public'));
app.listen(3000);
-
scraper.js:
scraperjs.StaticScraper.create('https://examplesite.com/')
.scrape(function($) {
return $(".entry-content p").map(function() {
var content = $(this).html();
return content
}
}).get();
})
.then(function(data) {
... // eventually will write the items returned from the data array to div's
}
});
您需要使用module.exports = functionName()
作為module.exports = functionName()
的最后一行來導出scraperjs函數。
你require
在index.js需要在scraper.js的路徑位置因素。 所以:
var scraperjs = require('./src/scraperjs');
這是我用promise編碼的代碼,還使用了daNews
全局變量
var scraperjs = require('scraperjs');
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
var url = 'https://news.ycombinator.com/';
var daNews;
function myScraper(){
return new Promise((resolve, reject) => {
scraperjs.StaticScraper.create(url)
.scrape(function($) {
return $(".title a").map(function() {
return $(this).text();
}).get();
})
.then(function(news) {
daNews = news;
resolve('done');
})
});
}
app.get('/', function(req, res){
async function m1(){
var x = await myScraper();
if(x == 'done'){
res.send(daNews);
}else{
console.log('err');
}
}
m1();
})
app.listen(3000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.