zoukankan      html  css  js  c++  java
  • 简单的nodejs httpserver

    var http = require('http');
    http.createServer(function (request, response) {
         // 发送 HTTP 头部  // HTTP 状态值: 200 : OK // 内容类型: text/plain 
        response.writeHead(200, {'Content-Type': 'text/plain'}); 
        // 发送响应数据 "Hello World" 
        response.end('Hello World
    ');
    }).listen(8888);
    // 终端打印如下信息
    console.log('Server running at http://127.0.0.1:8888/');

    运行:

    node main.js
    Server running at http://127.0.0.1:8888/

    顺别提一下,使用supervisor自动监控文件变化,可以自动重启。

    npm i -g supervisor
    
    supervisor test.js
    解决 supervisor : 无法加载文件 C:UserscharlesAppDataRoaming
    pmsupervisor.ps1
    在使用vsCode中运行cnpm install时报错。
    解决方法
    1.在win10 系统中搜索框 输入 Windows PowerShell,选择 管理员身份运行
    
    2、使用,win+R打开了powershell命令行之后,输入set-ExecutionPolicy RemoteSigned,然后更改权限为A,最后通过 get-ExecutionPolicy 查看当前的状态
     

    可以读取本地文件,从httpserver返回的示例:
    var http = require('http');
    var fs = require('fs');
    
    var server = http.createServer(function (req, res) {
        if (req.url === '/serverRedirect') {
            res.statusCode = 301;
            res.setHeader('Location', 'http://' + req.rawHeaders[1]);
            res.end();
        } else if (req.url === '/downPdf') {
            res.writeHead(200, { 'Content-Type': 'text/plain', 'Content-Disposition': 'attachment;filename=test.pdf' });
            res.end('Hello World
    ');
        } else if (req.url === '/viewPdf') {
    
            fs.readFile('d:/sample.pdf', (err, data) => {
                console.log("read success.")
                res.writeHead(200, {
                    'Content-Type': 'application/pdf; charset=utf-8',
                    'Content-Disposition': 'inline;filename=test.pdf',
                    "Access-Control-Allow-Origin": "*",
                    "Access-Control-Allow-Headers": "X-Requested-With"
                });
                if (err) {
                    res.write('Server error:' + err);
                } else {
                    console.log("read success.")
                    res.write(data);
                }
                res.end();
            })
    
        } else {
            res.setHeader('Custom', ['Header']);
            // 发送 HTTP 头部  // HTTP 状态值: 200 : OK // 内容类型: text/plain 
            res.writeHead(200, { 'Content-Type': 'text/plain' });
            let content = req.url;
            if (req.headers.accept === '*/*;test/header') {
                content += 'header/received';
            }
            if (req.headers.origin === 'http://new-origin') {
                content += 'new/origin';
            }
            res.end(content);
        }
    }).listen(8888);
    // 终端打印如下信息
    console.log('Server running at http://127.0.0.1:8888/');

    header上不能加入中文
          let nonUtf8Str=Buffer.from([0xcc, 0xec]);
          res.setHeader('Content-Disposition', [ Buffer.concat([ Buffer.from(' attachment; filename='),nonUtf8Str]).toString() ]);
     
  • 相关阅读:
    NPOI 菜鸟实践行之根据指定的模板生成Excel 2003格式的文件 (一)
    python循环字典
    对字典中找出最大的值
    通用解决方案:解决NHibernate SELECT 多表查询结果List绑定控件显示问题。
    读取Excel。。。
    哈,申请成功了。
    SharePoint 使用命令行备份过程中中断导致站点没有权限更改问题
    反射
    SharePoint 自定义主机标头与本地计算机名称不匹配,验证失败
    产生一个int数组,长度为100,并向其中随机插入1100,并且不能重复。自己写的算法
  • 原文地址:https://www.cnblogs.com/bigben0123/p/13840413.html
Copyright © 2011-2022 走看看