jquery - 将数据从node.js附加到现有的html

标签 jquery node.js express cors

我是一个 Node.js 菜鸟。也许这是一个微不足道的问题。 我有 server.js:

var express = require('express');
var cors = require('cors');
var app = express();
var path = require('path');
var request = require('request');
var cheerio = require("cheerio");

request({
  uri: "http://ptnpnh.ua",
}, function(error, response, body) {
  var $ = cheerio.load(body);

  $("[data-tab=toDay] .weatherNow .temp .temperature_value").each(function() {
    var link = $(this);
    var text = link.text();
    console.log(text);
  });
});

app.use(cors());

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, PATCH, DELETE");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.get('/', function(req, res, next) {
      res.sendFile(path.join(__dirname + '/index.html'));
    app.use(express.static('public'));
    app.use("/css", express.static(__dirname + '/css'));
    app.use("/color", express.static(__dirname + '/color'));
    app.use("/fontaw", express.static(__dirname + '/font-awesome'));
    app.use("/fonts", express.static(__dirname + '/fonts'));
    app.use("/img", express.static(__dirname + '/img'));
    app.use("/js", express.static(__dirname + '/js'));
    app.use("/node", express.static(__dirname + '/node_modules'));
});

app.post('/', function(req, res, next) {
});
app.listen(8080);

如何修改此代码以将“text”字符串放入现有“/index.html”的 dom 元素中(例如,使用 id="appendText")?

最佳答案

你几乎猜对了

var express = require('express');
var cors = require('cors');
var app = express();
var path = require('path');
var request = require('request');
var cheerio = require("cheerio");
var fs = require('fs') // notice this

request({
  uri: "http://ptnpnh.ua",
}, function(error, response, body) {
  var $ = cheerio.load(body);

  $("[data-tab=toDay] .weatherNow .temp .temperature_value").each(function() {
    var link = $(this);
    var text = link.text();
    console.log(text);
  });
});

app.use(cors()); // isnt this the same as below:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, PATCH, DELETE");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

// you put it here, not assign it every request to /
app.use(express.static('public'));
app.use("/css", express.static(__dirname + '/css'));
app.use("/color", express.static(__dirname + '/color'));
app.use("/fontaw", express.static(__dirname + '/font-awesome'));
app.use("/fonts", express.static(__dirname + '/fonts'));
app.use("/img", express.static(__dirname + '/img'));
app.use("/js", express.static(__dirname + '/js'));
app.use("/node", express.static(__dirname + '/node_modules'));


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

    //res.sendFile(__dirname + '/index.html'); // just send file 

    fs.readFile(__dirname + '/index.html'), 'utf8', function (err,data) {
        if (err) {
            return console.log(err);
        }
        //console.log(data);
        var $ = cheerio.load('<h2 class="title">Hello world</h2>')
        $('h2.title').text('Hello there!')
        $('h2').addClass('welcome')    

        res.set('Content-Type', 'text/html; charset=utf-8');
        res.send($.html());
    });
});

app.post('/', function(req, res, next) {

});
app.listen(8080);

关于jquery - 将数据从node.js附加到现有的html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080503/

相关文章:

angularjs - 在 Yeoman 生成器中搜索 angularjs 项目

mysql - 如何使用 Sequelize 获取位于两列之间的日期/时间,包括开始日期和结束日期

jquery .click href

javascript - 可复制的 HTML/CSS 输入占位符文本

node.js - 在 React 中呈现的 Blaze LoginButtons 模板 - 登录仅适用于主页

node.js - Express 4 从应用程序堆栈中动态删除中间件

javascript - 将 $.post 转换为 $.ajax

javascript - html5 锅炉板 : <\/script>?

javascript - 如何使用 Express、Mongoskin 和 Node.js 查找 mongoDB 对象

node.js - NodeJS,获取路由内登录用户的用户名