nodejs搭建本地服务器并访问文件操作示例


Posted in NodeJs onMay 11, 2019

本文实例讲述了nodejs搭建本地服务器并访问文件操作。分享给大家供大家参考,具体如下:

安装node:https://nodejs.org/en/download/

在本地建立目录:f:/nodetest,在该目录下新建index.html作为我们将要访问的内容。新建server.js作为node开启的入口:

$ cd f:/nodetest
$ mkdir index.html
$ mkdir server.js

index.html文件里简单写一点东西:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>node Test</title>
  <style type="text/css">
    html,body{
      margin: 0;
      padding: 0;
    }
    .node{
      width: 300px;
      margin: 0 auto;
      padding-top:100px;
      text-align: center;
    }
    .node h1{
      color:rgb(33,199,40);
    }
  </style>
</head>
<body>
  <div class="node">
    <h1>Hello Nodejs</h1>
  </div>
</body>
</html>

接下来写server.js:

const PORT = 8888; //访问端口号8888  //端口号最好为6000以上
var http = require('http'); //引入http模块
var fs = require('fs'); //引入fs模块
var url = require('url');//引入url模块
var path = require('path');//引入path模块
// req : 从浏览器带来的请求信息
// res : 从服务器返回给浏览器的信息
var server = http.createServer(function(req,res){
  var pathname = url.parse(req.url).pathname;;
   //客户端输入的url,例如如果输入localhost:8888/index.html,那么这里的url == /index.html
   //url.parse()方法将一个URL字符串转换成对象并返回,通过pathname来访问此url的地址。
  var realPath = path.join('F:/nodejs/nodetest',pathname);
  //完整的url路径
  console.log(realPath);
  // F:/nodejs/nodetest/index.html
  fs.readFile(realPath,function(err,data){
    /*
    realPath为文件路径
    第二个参数为回调函数
      回调函数的一参为读取错误返回的信息,返回空就没有错误
      二参为读取成功返回的文本内容
    */
    if(err){
      //未找到文件
      res.writeHead(404,{
        'content-type':'text/plain'
      });
      res.write('404,页面不在');
      res.end();
    }else{
      //成功读取文件
      res.writeHead(200,{
        'content-type':'text/html;charset="utf-8'
      });
      res.write(data);
      res.end();
    }
  })
});
server.listen(PORT); //监听端口
console.log('服务成功开启')

cmd下开启服务:

$ node server.js

结果:

nodejs搭建本地服务器并访问文件操作示例

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
让nodeJS支持ES6的词法----babel的安装和使用方法
Jul 31 NodeJs
nodejs中Express与Koa2对比分析
Feb 06 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 #NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 #NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 #NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 #NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 #NodeJs
Nodejs实现用户注册功能
Apr 14 #NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 #NodeJs
You might like
php结合飞信 免费天气预报短信
2009/05/07 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php debug 安装技巧
2011/04/30 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
javascript实现数独解法
2015/03/14 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
python+logging+yaml实现日志分割
2019/07/22 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
党员个人思想汇报
2013/12/28 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
工作说明书格式
2014/07/29 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
学术会议通知范文
2015/04/15 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
Java 死锁解决方案
2022/05/11 Java/Android
redis protocol通信协议及使用详解
2022/07/15 Redis
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS