摘要:模块服务器服务器指网站服务器,指驻留在因特网上的某种程序,浏览器的基本功能,提供信息浏览服务支持服务器端的脚本语言,通过脚本语言从数据库获取数据,将结果返回给客户端浏览器应用基本架构即客户端,通过协议向服务器发起请求服务器端,指服务器,接收
node web模块
web服务器web服务器指网站服务器,指驻留在因特网上的某种程序,web浏览器的基本功能,提供信息浏览服务
web支持服务器端的脚本语言,通过脚本语言从数据库获取数据,将结果返回给客户端浏览器
Client => Server => Business => Data Client 即客户端,通过http协议向服务器发起请求 Server 服务器端,指web服务器,接收客户端请求,并向客户端发送响应的数据 Business 即业务层,通过Web服务器处理应用程序,数据库的交互,逻辑运算,调用外部程序 Data 数据层,储存数据使用Node创建Web服务器
使用http模块创建
需要使用substr()方法,一个从指定位置返回指定结束的方法,继承自String 最后一个参数可省 https://developer.mozilla.org...
// server.js // 引入模块 var http = require("http"); // http模块 var fs = require("fs"); // fs 文件模块 var url = require("url"); // url 统一资源定位符模块 // 创建服务器 http.createServer((request, response) => { // 解析请求,保存进变量内 var pathname = url.parse(request.url).pathname; // 输出请求的文件名 console.log(pathname); // 从文件系统中读取文件,进行返回 fs.readFile(pathname.substr(1), (err, data) => { // 使用substr方法进行读取文件的字节,将文件名返回给回调函数 if (err){ // 对错误进行处理 console.log(err); // 打印出错误 // 返回一个404 response.writeHead(404, {"Content-Type": "text/html; charset=utf-8"}); response.write("呀,什么都没有╮(╯_╰)╭"); response.write("我猜你要的是 " + data + " ?"); response.end(); } else { // 返回 200 response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); // 返回文件内容 response.write(data.toString()); // 将读取的文件内容进行字符串化,并进行输出 response.end(); // 关闭连接,发出数据 }; }); }).listen(1937);
// index.html这是一个小Dome hello word!
访问 http://127.0.0.1:1937/index.html
出现hello word完成!
PS C:UsersmingmDesktop est> node Server.js /index.html / /input.html / { [Error: ENOENT: no such file or directory, open "C:UsersmingmDesktop estinput.html"] errno: -4058, code: "ENOENT", syscall: "open", path: "C:UsersmingmDesktop estinput.html" }改进一点
访问/出现404,说明没有设置首页,设置首页
// 增加对首页的支持,设置默认首页为index.html if (pathname === "/") { pathname = pathname + "index.html"; }
完成后的文件如下
// 引入模块 var http = require("http"); // http模块 var fs = require("fs"); // fs 文件模块 var url = require("url"); // url 统一资源定位符模块 // 创建服务器 http.createServer((request, response) => { // 解析请求,保存进变量内 var pathname = url.parse(request.url).pathname; // 输出请求的文件名 console.log(pathname); // 增加对首页的支持,设置默认首页为index.html if (pathname === "/") { pathname = pathname + "index.html"; } // 从文件系统中读取文件,进行返回 fs.readFile(pathname.substr(1), (err, data) => { // 使用substr方法进行读取文件的字节,将文件名返回给回调函数 if (err){ // 对错误进行处理 console.log(err); // 打印出错误 // 返回一个404 response.writeHead(404, {"Content-Type": "text/html; charset=utf-8"}); response.write("呀,什么都没有╮(╯_╰)╭"); response.write("我猜你要的是 " + data + " ?"); response.end(); } else { // 返回 200 response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); // 返回文件内容 response.write(data.toString()); // 将读取的文件内容进行字符串化,并进行输出 response.end(); // 关闭连接,发出数据 }; }); }).listen(1937);使用node创建客户端
PS C:UsersmingmDesktop est> node get.js302 Found 302 Found
nginx PS C:UsersmingmDesktop est>
var http = require("http"); // 请求的选项 var options = { // 创建一个对象保存相关数据 host:"www.iming.info", // 主机地址 port:"443", // 访问端口 method:"GET", path:"/", // 访问的文件 }; // 处理响应的回调函数 var callback = (response) => { // 更新数据 var body = ""; response.on("data", (data) => { // 绑定事件,data body += data; }); response.on("end", () => { // 绑定end事件 console.log(body); }); }; // 开始发送请求 var req = http.request(options, callback); // 发送请求,options为发送请求的选项,callback为处理请求的回调函数,将会有抛出三个事件一个data一个end,一个error,必须有end表示请求完毕,关闭连接 req.end(); // 关闭连接
由于小站使用的是nginx的https,使用了证书,需要使用验证秘钥的过程,所以拒绝访问,302没有权限
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/96338.html
摘要:使用和构建通用应用演讲者是来自的,他为我们介绍了怎么样用和等技术,建立一个通用应用或者同构应用。开发者可以使用微信的测试号来测试域名没备案也可以测。如何提前运用下一代技术提升性能和安全主讲人是陈子舜。一个常见的前端面试题时代的性能 使用React、Redux和Node.js构建通用应用 演讲者是来自Facebook的Stepan,他为我们介绍了怎么样用Node和React、React-...
摘要:一旦替换已经完成,该模块将被完全弃用。用作错误处理事件文件,由在标准功能上的简单包装器提供所有模块都提供这些对象。 Node.js简介 Node 定义 Node.js是一个建立在Chrome v8 引擎上的javascript运行时环境 Node 特点 异步事件驱动 showImg(https://segmentfault.com/img/bVMLD1?w=600&h=237); no...
摘要:一简介单点登录,简称为,是目前比较流行的企业业务整合的解决方案之一。客户端拦截未认证的用户请求,并重定向至服务端,由服务端对用户身份进行统一认证。三搭建客户端在官方文档中提供了客户端样例,即。 一、简介 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系...
摘要:本文就来说下这几个字段的使用场景,以及同时存在这几个字段时,他们之间的优先级。当存在和这种同名不同后缀的文件时,或者是会优先加载文件的。或者优先级是通过直接执行脚本只有字段有效。 browser VS module VS main 前端开发中使用到 npm 包那可算是家常便饭,而使用到 npm 包总免不了接触到 package.json 包配置文件。 那么这里就有...
阅读 2520·2021-11-24 10:20
阅读 2357·2021-09-10 10:51
阅读 3350·2021-09-06 15:02
阅读 3077·2019-08-30 15:55
阅读 2819·2019-08-29 18:34
阅读 3035·2019-08-29 12:14
阅读 1178·2019-08-26 13:53
阅读 2887·2019-08-26 13:43