Node.js的web服务器搭建与js的ajax交互

本人仅供个人学习使用(大神跳过,偏基础)


需求:通过Node.js爬取html页面meta信息并通过json格式返回给前端(js)

环境:1、自行安装好Node.js

            2、安装好cheerio模块 命令 npm install cheerio

            3、安装好express模块 命令npm install express

            4、安装好body-parser模块 命令 npm install body-parser



前端js代码

 var url = '需要爬取的页面地址';
        var time = 1;
         $.ajax({
            url: 'http://127.0.0.1:3000/post', //express搭建的web服务器地址
            data: {url: url},
            dataType: 'json',
            type: 'POST',
            success: function (obj) {
               console.log(obj)//打印返回的数据
            },
            error : function (obj) {
                alert("网络异常,请检查网络!");
            }
         })


服务器端node.js代码

创建一个app.js文件

var http = require('http');
var cheerio = require('cheerio')
var express = require('express');
var bodyParser = require('body-parser')
var app = express();

var metaData= {
	'description':'',
	'keywords':'',
	'statusCode':-1
}


app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: false}))

app.post('/post', function (req, res) {
	var params = req.body

	getMetaInfor(params.url)
	 
	res.json(metaData)
})


var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;

console.log('服务器已经启动');
});


function getMetaInfor(url) {
	var html = ''

	http.get(url,function(res){
		res.on('data',function(data){
			html += data
		})
		res.on('end',function(){
			var $ = cheerio.load(html)
		
			metaData.description = $('meta[name="description"]').attr('content')
			metaData.keywords = $('meta[name="keywords"]').attr('content')
			metaData.statusCode = 200

		})
	}).on('error',function(){
		console.log('error')
	})

}
	





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值