使用http模块创建Web服务器
Web服务器的功能:
接受HTTP请求(GET、POST、DELETE、PUT、PATCH)
处理HTTP请求(自己处理,或请求别的程序处理)
做出响应(返回页面、文件、各类数据等)
常见的Web服务器架构:
Nginx、Apache:负责接受HTTP请求,确定谁来处理请求,并返回请求的结果
php-fpm / php模块:处理分配给自己的请求,并将处理结果返回给分配者
常见请求种类:
请求文件:包括静态文件(网页、图片、前端JavaScript文件、css文件...),及由程序处理得到的文件
完成特定的操作:如登录、获取特定数据等
Node.js的Web服务器:
不依赖其他特定的Web服务器软件(如Apache、Nginx、IIS......)
Node.js代码处理请求的逻辑
Node.js代码负责Web服务器的各种“配置”
使用Express创建Web服务器
简单的Express服务器
静态文件服务
路由
中间件
简单的Express服务器:
var express = require('express'); var app = express(); app.get('', function(req, res){ <span style="white-space:pre"> </span>res.end('hello\n'); <span style="white-space:pre"> </span>}); <span style="white-space:pre"> </span>app.listen(18001, function afterListen(){ <span style="white-space:pre"> </span>console.log('express running on http://localhost:18001'); <span style="white-space:pre"> </span>});
静态文件范围:
网页、纯文本、图片、前端JavaScript代码、CSS样式表文件、媒体文件、字体文件
使用Express访问静态文件
<span style="white-space:pre"></span>app.use(express.static('./public'));
路由:
将不同的请求,分配给相应的处理函数
区分:路径、请求方法
三种路由实现方法:
path:比较简单
Router:比较适合同一个路由下的多个子路由
route:比较适合API
中间件
Connect:Node.js的中间件框架
分层处理
每层实现一个功能
创建TCP服务器
使用net模块创建TCP服务器
使用telnet连接TCP服务器
使用net创建TCP客户端
利用node.js搭建简单web服务器JS代码部分:
var http = require('http'); var url = require('url'); var path = require('path'); var fs = require('fs'); var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称 // 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级 // 且你想以debug文件夹启动web服务 http.createServer(function (req, res) { var pathname = __dirname + url.parse(req.url).pathname; dir = dir ? dir : pathname; // 记住dir(目录) pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替换文件静态路径 if (path.extname(pathname) == "") { pathname += "/"; } if (pathname.charAt(pathname.length - 1) == "/") { pathname += "index.html"; // 入口文件,此处默认index.html } fs.exists(pathname, function (exists) { if (exists) { switch (path.extname(pathname)) { case ".html": res.writeHead(200, {"Content-Type": "text/html"}); break; case ".js": res.writeHead(200, {"Content-Type": "text/javascript"}); break; case ".css": res.writeHead(200, {"Content-Type": "text/css"}); break; case ".gif": res.writeHead(200, {"Content-Type": "image/gif"}); break; case ".jpg": res.writeHead(200, {"Content-Type": "image/jpeg"}); break; case ".png": res.writeHead(200, {"Content-Type": "image/png"}); break; default: res.writeHead(200, {"Content-Type": "application/octet-stream"}); } // res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据 fs.readFile(pathname, function (err, data) { res.end(data); }); } else { res.writeHead(404, {"Content-Type": "text/html"}); res.end("<h1>404 Not Found</h1>"); } }); }).listen(8085, "127.0.0.5"); // 服务器端口 console.log("server running at http://127.0.0.5:8085/");
问题 你想实现一个服务器,通过TCP协议和客户端通信。 解决方案 创建一个TCP服务器的一个简单方法是使用 socketserver 库。例如,下面是一个简单的应答服务器: from socketserver import BaseRequestHandler, TCPServer class EchoHandler(BaseRequestHandler): def handle(sel
本文向大家介绍Nodejs创建TCP服务器 - king0222,包括了Nodejs创建TCP服务器 - king0222的使用技巧和注意事项,需要的朋友参考一下 1.Nodejs提供了net模块给我们,所以我们创建TCP服务器很简单: 通过var server = require('net').createServer();这行代码我们可以得到tcp服务器对象的引用。 server对象具注册了以
我创建了一个将被转换为web服务方法,该方法如下所示: 当我部署和测试此web服务时,我得到以下错误: WS00041:服务调用引发异常,消息为:NULL;有关更多详细信息,请参阅服务器日志异常详细信息:java.lang.reflect.invocationtargetexception javax.servlet.servletexception:java.lang.reflect.invoc
本文向大家介绍Node.js搭建WEB服务器的示例代码,包括了Node.js搭建WEB服务器的示例代码的使用技巧和注意事项,需要的朋友参考一下 前言 这几天为了熟悉vue.js框架,还有webpack的使用,就准备搭建一个发布和浏览markdwon的简单WEB应用。原本是想着用bash脚本和busybox的httpd来作为后台服务,但是bash脚本解析和生成JSON非常不方便,而用Java语言写又
问题内容: 给定一个SSL密钥和证书,如何创建HTTPS服务? 问题答案: 我发现以下示例。 这适用于节点v0.1.94-v0.3.1。在新版本的节点中被删除。 直接从该来源:
我使用netbean创建了一个restful Web服务,使用jpa从数据库创建了一个实体类,从实体类创建了一个restful Web服务,但是我使用tomcat作为我的服务器,现在下面的post方法不会将下面的json插入数据库,但是当我使用glassfish作为我的服务器时,它是有效的。你认为我缺少任何依赖关系吗?我如何模仿glassfish? 我正试图插入 我有以下依赖项: javaee-a