专栏首页贝塔博客nodejs 轻量级http服务器

nodejs 轻量级http服务器

代码:

var http = require('http');

var url = require('url');
var fs = require('fs');  //涉及文件读取
http.createServer(function (req, res, next) {
    var pathname = url.parse(req.url).pathname;

    ///结尾的请求,自动添加上”index.html
    if (pathname.slice(-1) === "/") {
        pathname = pathname + 'index.html';
    }

    var path = __dirname + pathname;
    var exists = fs.existsSync(path)
    if (exists) {
        var stat = fs.statSync(path);
        if (stat.isFile()) {
            fs.readFile(path, function (err, data) {
                res.write(data);
                res.end();
            });
        } else {
            //不是文件一律输出403
            res.writeHead(403);
            res.end('403 This path cannot be accessed')
        }
    } else {

        res.writeHead(404);
        res.end('404 not found.')
    }

}).listen(3000, function () {
    console.log('listen http://localhost:3000')
});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 直接调用django的model

    小贝壳
  • html 的div或其他元素监听 resize事件不生效的解决办法

    此外这个API 只能在IE11+,如果想兼容的话,建议 封装下,判断下,如果浏览器有这个API 直接用,没有的话,就使用轮询查询元素大小。

    小贝壳
  • django优雅的设置favicon.ico

    小贝壳
  • Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结

    aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1s

    龙哥
  • nodejs+express实现用户登录,注册以及退出操作

    先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

    十月梦想
  • Django实战-信息资讯-重构 USER 模型

    与之前的生鲜电商项目相比较,本次的用户应用模型层会更深入复杂,涉及到创建超级用户、创建普通用户和用户权限。

    小团子
  • MTK Android平台开发流程

    本篇给大家详细讲解了MTKAndroid平台开发流程,大致分为44个步骤,我们把每个步骤的命令详细讲解了下,一起来学习下。

    砸漏
  • Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结

    aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1s

    咸鱼学Python
  • Python定时任务随机时间执行

    有一个爬虫服务,需要定时从公开网站上拉取一些数据,为了避免被识别为爬虫(防爬虫的识别需要根据很多特征,时间仅仅是其中一个维度),需要在指定的时间内,随机生成一个...

    JouyPub
  • PostgreSQL执行超时的问题

    最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction ti...

    朝雨忆轻尘

扫码关注云+社区

领取腾讯云代金券