nodejs - 创建服务器(1)

在此之前,确保你已经安装了Node(并且你很会折腾) - 有人说,Java脚本和Java最本质的区别就是一个超会更新,一个死守旧。

如果你没有安装,请去官网下载并且安装:http://nodejs.cn/download/

中文文档:http://nodejs.cn/api/

 

 

先来说说node的优点以及缺点

粗略的来说node的优点即在于它是单线程、运行环境要求低,缺点同样明显的就是它一旦出现问题,全部瘫痪。

而php和java是多线程运行的,互不影响,但占资源高。

 

看一个小例子(菜鸟教程里面的)

复制代码
 1 var http = require('http');
 2 
 3 http.createServer(function(request, response) {
 4 
 5     // 发送 HTTP 头部 
 6     // HTTP 状态值: 200 : OK
 7     // 内容类型: text/plain
 8     response.writeHead(200, { 'Content-Type': 'text/plain' });
 9 
10     // 发送响应数据 "Hello World"
11     response.end('Hello World\n');
12 }).listen(8888);
13 
14 // 终端打印如下信息
15 console.log('Server running at http://127.0.0.1:8888/');
复制代码

 

复制代码
 1 // 请求http包
 2 var http = require('http');
 3 
 4 // 创建一个http线程
 5 http.createServer(function(request, response) {
 6 
 7     // 发送 HTTP 头部 
 8     // HTTP 状态值: 200 : OK
 9     // 内容类型: text/plain
10     response.writeHead(200, { 'Content-Type': 'text/plain' });
11 
12     // 发送响应数据 "Hello World"
13     response.end('Hello World\n');
14 }).listen(8888);
15 
16 // 终端打印如下信息
17 console.log('Server running at http://127.0.0.1:8888/');
复制代码

 

很好,可以运行

默认本地:127.0.0.1

端口自设:8088

 

我们看看官网API(http自带server)

 

且每一段代码都会带上res.end() , 这是因为我们要告诉服务器已经完成了.

 

再来看看这一段代码

复制代码
 1 var http = require('http');
 2 var fs = require('fs');
 3 
 4 var server = http.createServer(function(req, res) {
 5 
 6     // 请求路由 ==是指字符串比较
 7     if (req.url == "/index") {
 8         fs.readFile('index.html', function(err, data) {
 9             res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
10             res.end(data);
11         });
12     } else {
13         fs.readFile('404.html', function(err, data) {
14             res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
15             res.end(data);
16         });
17     }
18 });
19 
20 server.listen(80, '127.0.0.1');
复制代码

 

复制代码
 1 // 导入http
 2 var http = require('http');
 3 // 导入fs(文件读取服务)
 4 var fs = require('fs');
 5 
 6 var server = http.createServer(function(req, res) {
 7     // 其实nodejs最难的一点就是管理路由 - 它和其它web服务器不一样(因此灵活性超强)
 8 
 9     // 请求路由 ==是指字符串比较
10     if (req.url == "/index") {
11         // 请求地址index,读取文件index.html
12         fs.readFile('index.html', function(err, data) {
13             res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
14             res.end(data);
15         });
16     } else {
17         // 请求地址不存在,读取文件404.html,并且返回
18         fs.readFile('404.html', function(err, data) {
19             // 请求头 - 根据类型不同而不同
20             res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
21             res.end(data);
22         });
23     }
24 });
25 
26 // 监听80端口,并且是本地地址
27 server.listen(80, '127.0.0.1');
复制代码

 

 

通过 localhost/index 就可以访问到

index.html了。

 

通过localhost/other 就可以访问到

其它页面了。

 

 

你试一试链接本地图片或者css以及其它资源,感受一下node路由的强大!

 

posted @   Sunsin  阅读(3101)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示