node.js服务器核心http和文件读写
使用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和文件读写的更多相关文章
- Node.js的核心与红利(zz)
唯有明晰历史,才能了然当下,预知未来.作者从历史角度解读Node.js,帮助读者透过猜忌和谣言,看清真实的Node.js,了解Node.js的核心与红利. 令人惴惴不安的Node.js 我们越来越频繁 ...
- 搭建一个简单的node.js服务器
第一步:安装node.js.可以去官网:https://nodejs.org/en/进行下载. 查看是否成功,只需在控制台输入 node -v.出现版本号的话,就证明成功了. 第二步:编写node.j ...
- 本地Vue项目跨域请求本地Node.js服务器的配置方法
前言:跨域请求是在本地开发时经常遇到的需求,也很简单,只是几句代码配置一下的问题.我初次配置跨域请求时由于官方的说明太简洁,找到的教程又落伍,调试了一番并没有解决问题,到最后解决问题,已花费了很多时间 ...
- 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口
由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...
- node.js使用express框架进行文件上传
关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...
- 在 Node.js 中处理大 JSON 文件
在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...
- 建立一个node.js服务器(使用express搭建第一个Web环境)
一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...
- 在腾讯云(windows)上搭建node.js服务器
1:安装Node.js 使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:\Program Files\nodejs. 但这里我们需要修改安装路径到:D ...
- 搭建基于hyperledger fabric的联盟社区(六) --搭建node.js服务器
接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS, ...
随机推荐
- 怎么在cmd中输入mysql就可以进去mysql控制台
执行命令 设置cmd以管理员身份运行
- JavaScript Debug调试技巧
收藏于:https://blog.fundebug.com/2017/12/04/javascript-debugging-for-beginners/
- ES6学习笔记(七)对象的新增方法
1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...
- 实现人脸识别性别之路---网页上的video标签
<video> 元素支持三种视频格式: MP4, WebM, 和 Ogg.但是,不同的浏览器对视频格式的支持也不一致,因此为了让浏览器都适应,我们使用source属性来对视频文件格式定义 ...
- Hi3531D搭建环境时,出现的问题
1.展开SDK包得时候,运行./sdk.unpack得时候出现: 原因:ubuntu14.04中默认得是dash,要将dash改成bash. 解决方法:sudo ln -fs /bin/bash /b ...
- OpenJDK源码研究笔记(十五):吐槽JDK中的10个富有争议的设计
前14篇文章,分享了JDK中值得学习和借鉴的编码和设计方法. 每个硬币都是有两面的.Every coin has two sides. 当然,JDK中也有很多值得改进或者说富有争议的设计. 本篇,就来 ...
- 【Henu ACM Round#17 A】Simple Game
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 肯定是放在m-1或者m+1的. (m-1是左边的点都离a最近,而m+1则是右边的点都离他最近. 看看哪个更好就行 [代码] #inc ...
- Android自己定义动态布局 — 多图片上传
Android自己定义动态布局 - 多图片上传 本文介绍Android中动态布局加入图片,多图片上传. 项目中效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5 ...
- jQuery对表格进行类样式
<%-- <%@ page language="java" contentType="text/html; charset=utf-8" pageE ...
- vim-normal多行操作命令的使用
命令行命令-<:normal>这个命令可以重复上一个操作.他其实就跟.命令的效果查不到.不同的是,他可以把.的效果,作用于你用可视模式下的多行.例如,如果你想在下面的文字里在每一行加一个; ...