nodejs - 创建服务器(1)
在此之前,确保你已经安装了Node(并且你很会折腾) - 有人说,Java脚本和Java最本质的区别就是一个超会更新,一个死守旧。
如果你没有安装,请去官网下载并且安装:http://nodejs.cn/download/
先来说说node的优点以及缺点
粗略的来说node的优点即在于它是单线程、运行环境要求低,缺点同样明显的就是它一旦出现问题,全部瘫痪。
而php和java是多线程运行的,互不影响,但占资源高。
看一个小例子(菜鸟教程里面的)
var http = require('http');
http.createServer(function(request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, { 'Content-Type': 'text/plain' });
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
// 请求http包
var http = require('http'); // 创建一个http线程
http.createServer(function(request, response) { // 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, { 'Content-Type': 'text/plain' }); // 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888); // 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
很好,可以运行

默认本地:127.0.0.1
端口自设:8088
我们看看官网API(http自带server)

且每一段代码都会带上res.end() , 这是因为我们要告诉服务器已经完成了.
再来看看这一段代码
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(req, res) {
// 请求路由 ==是指字符串比较
if (req.url == "/index") {
fs.readFile('index.html', function(err, data) {
res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
res.end(data);
});
} else {
fs.readFile('404.html', function(err, data) {
res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
res.end(data);
});
}
});
server.listen(80, '127.0.0.1');
// 导入http
var http = require('http');
// 导入fs(文件读取服务)
var fs = require('fs'); var server = http.createServer(function(req, res) {
// 其实nodejs最难的一点就是管理路由 - 它和其它web服务器不一样(因此灵活性超强) // 请求路由 ==是指字符串比较
if (req.url == "/index") {
// 请求地址index,读取文件index.html
fs.readFile('index.html', function(err, data) {
res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
res.end(data);
});
} else {
// 请求地址不存在,读取文件404.html,并且返回
fs.readFile('404.html', function(err, data) {
// 请求头 - 根据类型不同而不同
res.writeHead(200, { "Content-type": "text/html;charset=utf-8" });
res.end(data);
});
}
}); // 监听80端口,并且是本地地址
server.listen(80, '127.0.0.1');
通过 localhost/index 就可以访问到
index.html了。
通过localhost/other 就可以访问到
其它页面了。
你试一试链接本地图片或者css以及其它资源,感受一下node路由的强大!
nodejs - 创建服务器(1)的更多相关文章
- Express与NodeJs创建服务器的两种方法
NodeJs创建Web服务器 var http = require('http'); var server = http.createServer(function(req, res) { res.w ...
- 用nodejs创建服务器显示html页面
nodejs版本:v10.14.2 1.首先准备一个简单的html页面 <!DOCTYPE html> <html lang="en"> <head& ...
- nodejs创建服务器
'use strict'; //加载http模块: const http = require('http'); //创建一个http服务: const server = http.createSe ...
- nodejs创建http服务器
之前有简单介绍nodejs的一篇文章(http://www.cnblogs.com/fangsmile/p/6226044.html) HTTP服务器 Node内建有一个模块,利用它可以很容易创建基本 ...
- NodeJs 创建 Web 服务器
以下是演示一个最基本的 HTTP 服务器架构(使用8081端口),创建 ser.js 文件,代码如下所示: var http = require('http'); var fs = require(' ...
- Nodejs创建https服务器(Windows 7)
为了实验一下WebRTC,搭了个简单的https服务器.说说步骤: 生成OpenSSL证书 使用Nodejs的https模块建立服务器 OpenSSL 证书 我机子Windows 7,安装了Cygwi ...
- Nodejs创建HTTPS服务器
Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...
- Nodejs学习笔记(3) 创建服务器:Web 模块(http)与 express 框架
目录 参考资料 1. 使用 http 模块创建服务器 1.1 实现思路及代码 1.2 HTTP 结构 1.2.1 Request中的重要字段 1.2.2 Response 头信息:文件类型.状态码.连 ...
- NodeJs创建一个简单的服务器
步骤: 1 //模块化引入 2 let http = require ("http"); 3 4 //创建服务器 5 http.createServer(function(requ ...
随机推荐
- Dorado日常使用总结
1.360兼容模式下的控件虚线边框问题: 控件加载是onReady事件中加上:self.focusable=false;(用于指示该种控件是否支持获得控制焦点.) 2.360兼容模式下滚动条 cont ...
- java同步器__学习笔记
参照:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 前言: 在java.util.concurrent.locks包中有很多Lock的实 ...
- Arcengine 基本操作(待更新)
/// <summary> /// 删除fieldName属性值为1的弧段 /// </summary> /// <param name="fieldName& ...
- MFC 对话框阴影效果
在 OnInitDialog(Cdialog)里面添加 SetClassLong(this->m_hWnd, GCL_STYLE, GetClassLong(this->m_hWnd, G ...
- vue项目上传文件以及进度条
最近做项目的时候,需要上传自定义镜像.并且附带进度条,上网查询一下资料,经过一番折磨,也总算做出来了,把自己写项目的内容给大家分享一下. 先直接贴代码吧 1.首先声明一个formData对象. 2.把 ...
- 【HDOJ5538】House Building(计算几何)
题意:给定一个n*m的方阵,第i行第j列的高度为a[i][j],问除了下底面之外其余五面的总表面积 n<=50,0<=a[i][j]<=1000 思路:队友写的,抱大腿 考虑当前方格 ...
- 【SPOJ61】Brackets(线段树)
题意:给出一个括号序列,要求维护两种操作: 1.将第x位上的括号取反 2.查询当前整个括号序列是否匹配 n<=3e4 思路:线段树维护区间内没有匹配的左右括号数量 pushup时t[p].r=t ...
- windows 加入域
点击computer,右击选system ,点 change setting,填写domain和computer-name 加入域,下次登陆加入,在域中会检查computer name
- angular 右击事件的写法
.directive('ngRightClick', function ($parse){ return function (scope, element, attrs){ var fn = $par ...
- [LeetCode] 4Sum hash表
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...