简单的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() ]);
 
原文地址:https://www.cnblogs.com/bigben0123/p/13840413.html