代码之家  ›  专栏  ›  技术社区  ›  Martin AJ

如何在浏览器上运行node.js项目?

  •  0
  • Martin AJ  · 技术社区  · 6 年前

    这是我的代码:

    var url = "http://quotes.toscrape.com/";
    
    var express = require('express');
    var request = require('request');
    
    request(url, function (error, response, body) {
        console.log('error:', error); // Print the error if one occurred
        console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
        var re = new RegExp('<title>(.*)</title>');
        var r  = body.match(re);
        if (r)
            console.log(r[1]);
    });
    

    当我执行此命令时: node index.js 我也将在命令行环境中看到结果(该网站的标题)。但我想在浏览器中看到结果。我该怎么做?

    注意到几个月前,我正在做一个react项目,如果我没记错的话,我可以在浏览器上看到结果( localhost:3000 )通过执行 npm start . 但我不知道为什么这个项目不会这样。

    4 回复  |  直到 6 年前
        1
  •  1
  •   pb_    6 年前

    您可以使用快速服务器将响应发送到浏览器。

    var url = "http://quotes.toscrape.com/";
    
    var express = require('express');
    var request = require('request');
    var app = express();
    
    app.get('/your-route', function(req, res) {
        request(url, function (error, response, body) {
            console.log('error:', error); // Print the error if one occurred
            console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
            var re = new RegExp('<title>(.*)</title>');
            var r  = body.match(re);
            if (r) {
                res.write(r[1]);
                res.end();
            }
        });
    })
    
    app.listen(3000);
    
        2
  •  1
  •   hong4rc 6ark    6 年前

    你可以使用 socket.io .

    如果要运行浏览器 console.log(r[1]); ,你使用 socket.emit('log', r[1]); . 在浏览器中(在HTML文件的JavaScript中):

    socket.on('log', ...data=>{
        console.log(...data);
    });
    

    但是你应该读 https://socket.io/ 去配置和理解它。

        3
  •  1
  •   Fabien Greard    6 年前

    下面是使用Express创建应用程序的示例

    const express = require('express') 
    const app = express() 
    
    app.get('/', function (req, res) { 
    res.send('Hello World!') 
    }) 
    
    app.listen(3000, function () { 
    console.log('Example app listening on port 3000!') 
    })
    

    阿尔索 request 仅用于制作HTTP调用,而不创建任何类型的服务器

        4
  •  0
  •   Shriharsha KL    6 年前

    要从浏览器访问任何内容,您需要创建一个快速应用程序并拨打 listen() 关于它。

    const express = require('express')
    
    const app = express();
    
    app.get('/', function (request, response) {
      // Process request and form a response
      response.send(/*response*/);
    });
    
    app.listen(3000, () => console.log('Listening on port 3000');