热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nodejs实战:使用原生nodeJs模块实现静态文件及REST请求解析及响应(基于nodejs6.2.0版本,不使用express等webMVC框架)...

一、准备工作1、安装nodejs首先你需要安装nodeJs那么nodejs官网:http:nodejs.cn,下载相应版本,一步一步安装。
一、准备工作

1、安装nodejs

首先你需要安装nodeJs

那么nodejs官网:http://nodejs.cn/,下载相应版本,一步一步安装。

二、使用nodejs开发服务器后台应用

1、创建nodejs应用

直接上代码

var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
var queryString = require('querystring');
//解析REST请求
function parseReq(response, pathName, queryStr) {//解析请求参数var reqStr = queryString.parse(queryStr);switch (pathName) {//简单实例,解析请求参数获取用户名并通过json数据返回case "/dojoTest/getUser":response.writeHead(200, { 'Content-Type': 'application/json;charset=utf-8' });var str = "{'errNum': 200,'retMsg': '请求成功','data':' 用户名是:" + reqStr.user + "'}";response.write(str);break;//简单实例:通过REST请求方式获取当前时间case "/dojoTest/getTime":response.writeHead(200, { 'Content-Type': 'application/json;charset=utf-8' });response.write("{'errNum': 200,'retMsg': '请求成功','data':' 当前时间:" + new Date().toLocaleString() + "'}");break;//如果没有对应的REST请求,报个501错误给浏览器default:response.writeHead(501, { 'Content-Type': 'application/json;charset=utf-8' });response.write('{"errNum": 501,"retMsg":"请求失败:该请求不存在","data":"null"}');}response.end();
};
//解析静态请求
function staticFileReq(response, pathName, suffixStr) {//读取静态文件并生成流fs.readFile(pathName.substr(1), function(err, data) {if (err) {console.log(err);//HTTP 404 :页面不存在//没找到对应的静态文件怎么办,给个404错误response.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });//响应文件流response.write("页面不存在!404");response.end();} else {//HTTP 200 : 成功if (suffixStr === ".css") {//设置charset=utf-8防止乱码response.writeHead(200, { 'Content-Type': 'text/css;charset=utf-8' });} else {response.writeHead(200, { 'Content-Type': 'text/html;charset=utf-8' });}//响应文件流response.write(data.toString());response.end();}});
}
//创建服务器
http.createServer(function(request, response) {//获取请求地址var requrl = request.url;var urlparse = url.parse(requrl);//请求路径var pathname = urlparse.pathname;//pathname+参数// var urlpath = urlparse.path;//参数var query = urlparse.query;//同上,但参数前多个?// var search = urlparse.search;//后缀var suffix = path.extname(pathname);//控制台显示信息// console.log("Request for " + pathname + " received,path is " + urlpath + ",query is" + query + ",search is" + search);console.log("Request for " + pathname + "received,suffix is " + suffix + ",query is " + query);if (suffix != null && suffix.trim() != "") {//静态文件处理staticFileReq(response, pathname, suffix);} else {//动态请求处理parseReq(response, pathname, query);}//响应结束
}).listen(8081);
//开启后在控制台显示该服务正在运行
console.log('Server running at http://127.0.0.1:8081/');

2、运行编写好的应用


3、从浏览器端发送请求和浏览页面

浏览器发送请求



转:https://www.cnblogs.com/eguid/p/10195628.html



推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文将详细介绍如何在Webpack项目中安装和使用ECharts,包括全量引入和按需引入的方法,并提供一个柱状图的示例。 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • Composer 无法加载本地第三方库?如何解决这一常见问题 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
Android代码
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有