0

我正在尝试使用 Node/Express 和 Cheerio 构建一个基本的 parcer,但是当服务器运行正常时,我在浏览器中没有收到任何页面。这是 server.js 的代码:

var express = require('express');
var request = require('request');
var cheerio = require('cheerio');
var app = express();

app.engine('.html', require('ejs').__express);
app.engine('html', require('ejs').renderFile);
app.set('views', __dirname + '/views');

app.get('/main', function(req, res) {
    url = 'http://tres-bien.com/new-arrivals/';
    request(url, function(error, response, html) {

    var title, price, image;
    var tres_bien = [ { title : 'tres'}, { price : 'bien'} ];
    var images = [];

        if (!error) {
            var $ = cheerio.load(html);
            $(".grid-info").each(function() {
                var data = $(this);
                title = data.children().first().text().replace(/(\r\n|\n|\r|\t)/gm, "");
                price = data.children().last().children().text().replace(/(\r\n|\n|\r|\t|\s)/gm, "");
            });
            $(".dropjaw img").each(function() {
                image = this.attr('href');
            });
        }   
    }); 
});// APP GET

app.listen('8081')
exports = module.exports = app;

先感谢您。

4

1 回答 1

0

您似乎正在混合服务器端和客户端代码。您的app.get函数是您的请求的服务器端处理程序/main。你需要通过res对象发回一些东西。

由于您已经映射了 ejs,我假设您的服务器端视图是 EJS 文件。你可以用一些简单的东西来渲染它们,比如:

app.get('/main', function(req, res) {
  res.render('main'); // this requires a file named main.ejs
}
于 2014-03-20T20:02:51.627 回答