• 用nodejs的express框架在本机快速搭建一台服务器


    [本文出自天外归云的博客园]

    简介

    用express框架在本机搭建一个服务器,这样大家可以通过指定的url来在你的服务器上运行相应的功能。

    Express是一个基于nodejs的框架,我们可以用它来完成服务端的编写。

    安装

    首先安装nodejs和npm,这俩东西有点儿像python和pip的关系,nodejs是一种js的封装,而npm可以为nodejs安装一些库。

    有了nodejs后安装express

    之后在本地创建一个文件夹,作为node服务器所在的文件夹,我这里取名为mocker。安装点击这里查看教程。

    之后在mocker文件夹里创建一个static文件夹用来放静态资源文件用。

    再创建一个scripts文件夹用来放我的python脚本。

    我的思路就是用户访问我的服务器我本地nodejs可以调用python脚本来完成一些任务,然后把结果呈现给用户。

    我的node脚本叫mocker.js,内容如下:

    function sleep(sleepTime) {
        for(var start = +new Date; +new Date - start <= sleepTime; ) { } 
    }
    
    function exec_cmd(cmdStr) {
        var exec = require('child_process').exec;
        exec(cmdStr, function(err,stdout,stderr){
            if(err) {
                console.log('Error:'+stderr);
            } else {
                console.log(stdout);
            }
        });
    }
    
    var express = require('express');
    var app = express();
    var path = require('path');
    console.log(path.join(__dirname, '/'));
    app.use(express.static(path.join(__dirname, '/')));
    var distribution = '/static/html/distribution.html'
    
    app.get("/distribution", function (req, res) {
        var cmdStr = 'python scripts/check_tasks_distribution.py';
        exec_cmd(cmdStr);
        var fs = require("fs");
        fs.exists(path.join('static', 'html', 'distribution.html'), function(exists) {  
            if (exists) {
                res.redirect(distribution);
            } else {
                exec_cmd(cmdStr);
                sleep(1000);
            }
        });
    });
    
    var server = app.listen(3000, function () {
        var host = server.address().address;
        var port = server.address().port;
        console.log('Listening at http://%s:%s', host, port);
    });

    主体思路就是当用户访问distribution这个路由的时候就会在我的服务端执通过命令行来执行scripts文件夹下的check_tasks_distribution.py这个脚本,然后把生成的静态资源文件distribution.html页面打开。这个脚本我是用的之前写的一个关于统计组内大家正在进行中的jira任务的统计功能

    启动

    在mocker路径下执行命令行启动mocker.js服务端文件:

    之后就可以在浏览器通过http://server-ip:3000/distribution来访问查看正在进行中的jira任务列表了。

    启发

    我们可以将平时编写的对日常工作有帮助的脚本集成到这个服务端,这样就可以将脚本和工具平台化展示给同事,达到共享的目的。

  • 相关阅读:
    pcs7 opc 连接问题
    nuget 多个程序引用同一个库时,当个这个库更新时,引用的程序都要跟新,否则会在运行时出错
    nuget update FileConflictAction
    a
    C#版本
    .NET Framework版本与CLR版本之间的关系
    c# 将一种数组类型转成另一种数组类型
    tfs 清除缓存,在需要时
    java枚举和仿枚举
    java反射的用法
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/7662947.html
Copyright © 2020-2023  润新知