使用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. css3 实现动画效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. linux下chm阅读器

    推荐使用Okular这个软件,Okular是一个pdf阅读器,但是对chm文件支持很好.

  3. Vim使用心得总结

    基本快捷键 v 进入可视模式 i / a 光标前/后插入模式 I / A 行首/末插入模式 Crtl+c 进入命令模式 Crtl+v 进入块可视模式 Q 进入EX模式 gh 进入选择模式 u 撤销 U ...

  4. 基于Pipe的PureMVC FLEX框架的多核共享消息技术

    pipes utilities,也就是所谓的通道(管道),为什么要使用通道呢?模块的结构都是一个单独的puremvc结构,模块和模块,shell和模块之间的通信 不能使用puremvc中的消息进行,因 ...

  5. sqoop 1.4.4-cdh5.1.2高速入门

    一.高速入门 (一)下载安装 1.下载并解压 wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.2.tar.gz tar - ...

  6. Redis学习笔记--Redis客户端(三)

    1.Redis客户端 1.1 Redis自带的客户端 (1)启动 启动客户端命令:[root@kwredis bin]# ./redis-cli -h 127.0.0.1 -p 6379 -h:指定访 ...

  7. java种instanceof方法和getclass方法的区别

    在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面写个测试类. public c ...

  8. 如何优雅的写UI——(4)选项卡美化

    现在做出来的选项卡实在太丑的,咱们怎么把他弄得好看一点呢 tabctrl是可以添加icon图标的,那派生与tabctrl的mfctabctrl肯定也能添加图标,他们两个添加图标的原理一样,但是还是有点 ...

  9. WPF动画基础及实例

    1.介绍 在之前做winform中, 也做过一些动画效果, 但是整个动画都需要我们自己去编写, 利用计时器或线程去直接操作UI元素的属性, 然而在WPF中, 则是通过一种全新的基于属性的动画系统, 改 ...

  10. 从头认识Spring-2.3 注解装配-@autowired(4)-required(1)

    这一章节我们来具体讨论一下@autowired里面的參数required. 1.domain(重点) 蛋糕类: package com.raylee.my_new_spring.my_new_spri ...