转自:http://blog.csdn.net/zxsrendong/article/details/16804867
在开始之前,应该好好规划一下项目的文件目录了。我的目录结构如下:
assets放置网站的静态文件css,js,img等;common存放项目的配置文件和一些通用文件;server存放服务处理文件,将要创建的静态文件服务就是放在此目录中; tpl放置的是模板文件也就是网页文件。
文件的下载格式主要是由'Content-Type'的值决定的,要想下载的文件能够正常工作就应该正确的设置不同文件的'Content-Type'值。mime.js文件存放了一些常用mime值:
- exports.mime = {
- "html" : "text/html",
- "css" : "text/css",
- "js" : "text/javascript",
- "json" : "application/json",
- "ico" : "image/x-icon",
- "gif" : "image/gif",
- "jpeg" : "image/jpeg",
- "jpg" : "image/jpeg",
- "png" : "image/png",
- "pdf" : "application/pdf",
- "svg" : "image/svg+xml",
- "swf" : "application/x-shockwave-flash",
- "tiff" : "image/tiff",
- "txt" : "text/plain",
- "wav" : "audio/x-wav",
- "wma" : "audio/x-ms-wma",
- "wmv" : "video/x-ms-wmv",
- "xml" : "text/xml"
- };
先来看server.js和FServer.js的类容:
- // server.js
- var config = require('./common/config');
- var http = require('http');
- var fs = require('fs');
- var url = require('url');
- var path = require('path');
- var FServer = require('./server/FServer');
- function index(){
- var indexPath = config.ui + '/index.html';
- fs.exists(indexPath, function(exists){
- if( !exists ) {
- throw err;
- } else {
- fs.readFile(indexPath, function(err, data){
- if (err) {
- throw err;
- } else {
- function onRequest(req, res){
- // 取得文件路径
- var pathname = url.parse(req.url).pathname;
- // 获取文件扩展名(包含前置.)
- var extname = path.extname( pathname );
- var type = extname.slice(1);
- // 获取下载文件在磁盘上的路径,
- var realPath = config.root + pathname;
- if ( extname === '' ) {
- res.writeHead(200, {'Content-Type':'text/html'});
- res.write(data);
- res.end();
- } else {
- FServer.filesLoad(realPath, type, req, res);
- }
- }
- http.createServer(onRequest).listen(config.port);
- }
- })
- }
- })
- }
- exports.index = index;
- // FServer.js
- var fs = require('fs');
- var mime = require('../common/mime').mime;
- function filesLoad(filePath, type, req, res){
- fs.exists(filePath, function(exists){
- if ( !exists ) {
- res.writeHead(404, {'Content-Type': 'text/plain'});
- // res.write();
- res.end();
- } else {
- fs.readFile(filePath, 'binary', function(err, file){
- if ( err ) {
- res.writeHead(500, {'Content-Type': 'text/plain'});
- // res.write();
- res.end();
- } else {
- res.writeHead(200, {'Content-Type': mime[type]});
- res.write(file, 'binary');
- res.end();
- }
- });
- }
- })
- }
- exports.filesLoad = filesLoad;
上面引入了nodejs的内置模块http、fs、url、path,config和FServer是自定义模块,要读取文件首先要知道文件在磁盘上是否存在,还应当知道文件的类型才能达到想要的效果。运行程序可以发现css和javascript都下载正确,并且css效果在页面上正确渲染(javascript还没有写效果)
相关推荐
节点-html-服务器这是一个简单的 nodejs http 服务器,用于提供静态 html 或 JSON 文件脚步: 创建一个新目录npm install serve-static --save (此 --save 将在 package.json 中保存条目以备将来安装) 创建一个新...
在Docker上使用Nginx和Node.js 该示例将使用Docker创建Nginx Web服务器和Nodejs服务器。... Web目录包含Nginx Web服务器使用的静态Web文件。 config目录包含用于创建Nginx Docker容器的自定义Nginx配置文件。
指定卷:专门用于日志的文件夹和包含静态文件的文件夹 运行docker-compose up -d 无需编写一些服务器逻辑! 它已经包含在容器中。 frontend: image: bitliner/static-node-2 mem_limit: 512m ports: - 9001:...
节点CP NodeCP是一个NodeJS Webhosting面板,允许使用Nginx虚拟主机在您的计算机上轻松设置NodeJS托管的网站 待办事项/建议功能 ...允许自定义Nginx静态文件服务(哪些文件应该代理到NodeJS,哪些文件不应该代理)
易于使用的Web服务器包括: 适用于API和微服务的HTTP服务器支持文件上传和后正文解析快速而最少,仅约500行代码基于动作的集成式Websocket服务器具有压缩支持的静态文件服务器Redis pubsub用于扩展WebSocket 全面的...
使用creat-react-app和ant-design构建的react项目,加上nodejs制作的静态文件服务器,
- TCP服务器实现:通过 CollectionServer 类来创建和管理TCP服务器,处理客户端连接和数据通信。 - 客户端通信处理:BoxCollectionClient 和 BaseCollectionClient 类处理与盒子设备和其他客户端的通信,包括数据...
DHTMLPlus.node DHTMLPlus 是为 nodeJS 构建的 HTML 框架,它支持 Azure。...在您的代码文件夹中,创建一个名为 local.js 的文件 exports . devKeys = { "AZURE_STORAGE_ACCOUNT" : "name here" , "AZUR
在本地“ \ Server”文件夹中,运行“ npm install”以重新创建依赖关系,然后运行“ node ./galleryServer.js”以启动服务器。 默认情况下,服务器正在侦听端口3000。如果计算机上没有运行其他Web服务器,则可以将...
1.请求文件:包括要处理的静态文件 2.完成特定的操作,如登录,获取特定数据等等 使用http创建web服务器 //引入nodejs的核心模块http var http = require('http') ; //创建一个http实例 var reqHandler = function...
传染性的 一对多inotify事件驱动的异步文件系统同步守护程序。 如何安装 $ npm install 这个怎么运作 Contagious使用inotify检查...创建该守护程序的目的是跨复制节点同步Web服务器文档根目录,以同步静态文件和页面。
该站点可由任何能够处理静态网站的服务器提供服务。 这包括亚马逊 S3。 要创建可部署版本,请执行node run build ,然后将build文件夹的内容 xcopy 到您的 S3 存储桶。 设置: 索引文件是index.html 错误文档是...
使用D2Server完全可以替换Apache的开发环境(),构建一个基于静态文件和测试数据的前端开发环境。Features使用项目配置文件管理项目,项目信息简单明了针对团队协作,可每人设置独立的项目配置文件,由D2Server来...
它使用nodejs构建,并使用作为标记语言,并在服务器上使用来处理图像。 它还处理时间跟踪并将其显示为图形。 Ronbun使用单个文件作为内容源,而使用文本文件进行时间记录。 它解析文件并使用模板生成HTML。 Ronbun...
这是提供静态文件所必需的:> npm install express 3. 从 mongodb.org 下载 mongodb 并安装在您的主目录中(将 mongo.version 重命名为 mongo) 4.创建目录data/db,mongodb会在这个目录下存放数据光盘 / 须藤 ...
默认情况下,静态文件,会话,路由器,主体解析器,cors。 通过配置文件进行配置。 安装 $ npm install turbo-serv --save 创建一个应用 $ mkdir my-app && cd my-App $ npm init 在package.json编辑start 。 ...
为给定路径创建一个新的SendStream以发送到res 。 该req是Node.js HTTP请求,该path是要发送的urlencoded路径(使用urlencoded,而不是实际的文件系统路径)。 选件 acceptRanges 启用或禁用接受远程请求,默认为...
请执行以下操作: npm run storybook 要将Storybook导出为静态文件,请执行以下操作: npm run storybook:build 生成新组件我在util下包含了一个方便的NodeJS util文件,名为create-component.js。 您可以运行此命令...
将您的静态文件服务器设置为项目的 /static/ 目录作为 /static/ 并将其他请求代理到应用程序服务器(您应该在 settings.json 以及其他设置中指定端口)。 您的代理应该支持 WebSockets。 接下来,您应该在应用程序...
创建简单的package.json ( npm init ) 安装作为项目的依赖项( :thumbs_up: ): npm i @exadel/server-sketch --save-dev CLI (有助于创建演示项目) [可选] : npm i @exadel/server-sketch-cli 快速开始 ...