使用htpp给客服端的数据,把数据交给浏览器渲染.利用 http创建服务器,如客户端请求为:127.0.0.1:3000或127.0.0.1:3000/xxx.html时 ,判断www文件夹中,文件 index.html或xxx.html页面是否存在,如存在则返回给客户端相应的文件内容。如文件不存在,则将 www文件夹中的 err.html返回给客户端。
var http=require("http")
var fs=require("fs")
var path=require("path")
var page=["home.html","404.html"] //定义首页与404页面
//设计一个用于同步读取文件的函数
function readhtml(url) {
console.log("当前地址1",url)
if(url==path.join(__dirname,"template","\\")){ //如果传入的是根目录,则返回 HOME.HTML
url=path.join(__dirname,"template",page[0])
}
var ishave=fs.existsSync(url) //判断文件是否存在
if(!ishave){ //如果文件不存在 返回给用户404页面
url=path.join(__dirname,"template",page[1])
}
return fs.readFileSync(url,"utf8") //同步读取相应文件内容
}
//创建服务 request 用户请求 response 返回给用户数据; response.end() 返回数据完成;
http.createServer(function (request, response) {
console.log(request.url)
//同步读取网页的内容
var content= readhtml(path.join(__dirname,"template",request.url))
response.write(content)
response.end()
}).listen(3000,function (err) { //监听端口
if(err) throw err
console.log("服务开始: http://127.0.0.1:3000")
})
fs文件读写判断,利用js模块,完成打包操作。即读取www文件夹,获取www文件夹里面的文件名列表。如果是文件,将其内容添加到main.js文件中,如果再循环开始main.js 已存在,就先删除。
 var fs=require("fs")
var myfiles=__dirname+"/www/"
var myfile=__dirname+"/main.js"
//读取文件夹
fs.readdir(myfiles,function (err, res) {
if(err) throw err
// console.log(res)
//判断文件 main.js是否存在
var ishave=fs.existsSync(myfile)
console.log(ishave)
if(ishave){
fs.unlinkSync(myfile)
}
//循环所有的文件
for(index in res){
//过滤文件夹
var isf=fs.statSync(myfiles+res[index]).isFile();
//判断是文件还是文件夹
if(isf){
//读取文件内容
var content=fs.readFileSync(myfiles+res[index],"utf8")
//内容追加到main.js
fs.appendFileSync(myfile,content+"\n","utf8")
console.log("res=",res[index],isf,content)
}
}
})

node.js服务器核心http和文件读写的更多相关文章

  1. Node.js的核心与红利(zz)

    唯有明晰历史,才能了然当下,预知未来.作者从历史角度解读Node.js,帮助读者透过猜忌和谣言,看清真实的Node.js,了解Node.js的核心与红利. 令人惴惴不安的Node.js 我们越来越频繁 ...

  2. 搭建一个简单的node.js服务器

    第一步:安装node.js.可以去官网:https://nodejs.org/en/进行下载. 查看是否成功,只需在控制台输入 node -v.出现版本号的话,就证明成功了. 第二步:编写node.j ...

  3. 本地Vue项目跨域请求本地Node.js服务器的配置方法

    前言:跨域请求是在本地开发时经常遇到的需求,也很简单,只是几句代码配置一下的问题.我初次配置跨域请求时由于官方的说明太简洁,找到的教程又落伍,调试了一番并没有解决问题,到最后解决问题,已花费了很多时间 ...

  4. 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口

    由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...

  5. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  6. 在 Node.js 中处理大 JSON 文件

    在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...

  7. 建立一个node.js服务器(使用express搭建第一个Web环境)

    一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...

  8. 在腾讯云(windows)上搭建node.js服务器

    1:安装Node.js 使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:\Program Files\nodejs. 但这里我们需要修改安装路径到:D ...

  9. 搭建基于hyperledger fabric的联盟社区(六) --搭建node.js服务器

    接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS, ...

随机推荐

  1. Python(一) 基本类型

    前言: 什么是代码? 代码是现实世界事物在计算机世界中的映射. 什么事写代码? 写代码是将现实世界中的事物用计算机语言来描述. 一.数字:整形与浮点型 整型:int 浮点型:float (没有单精度和 ...

  2. Java:网络传输

    网络以字节码传输 String s = "我恨你"; //转成字节: byte[] brr = s.getBytes();//gbk //iE:utf-8 String s1 = ...

  3. 威联通212P 在admin用户密码正确情况下仍然无法登录WEB页面解决办法

    *登录 telnet 执行以下语句: [~] # cp /etc/default_config/passwd /mnt/HDA_ROOT/.config/passwd[~] # cp /etc/def ...

  4. sublime text 2 licence

    ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC ...

  5. 关于IDEA无法完整显示项目文件结构

    今天发现一个奇怪的问题,就是我从本地导入了文件,明明已经成功了,但是在我的项目结构里面就是不显示,然而点击目录, 又能打开相应的文件,如图所示: 其实这个打开的只是包文件,只需要如下图操作即可:

  6. hdu 5375 - Gray code(dp) 解题报告

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  7. 第一个C#控制台程序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. css中margin上下外边距重叠问题

    css的盒子模型里是这样规定两个对象之间的距离的:对象之间的间距是由两个对象的盒子模型的最终计算值得出来的,也就是说两个对象之间的间距就是两个对象的距离,但是当遇到两个对象一个有下外边距margin, ...

  9. js中Array.prototype.push.call的用法

    var arr = [] Array.prototype.push.call(arr,"a","b","c") <==> []. ...

  10. 湖南省第八届大学生计算机程序设计竞赛(A,B,C,E,F,I,J)

    A 三家人 Description 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列, ...