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

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

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

先来说说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)的更多相关文章

  1. Express与NodeJs创建服务器的两种方法

    NodeJs创建Web服务器 var http = require('http'); var server = http.createServer(function(req, res) { res.w ...

  2. 用nodejs创建服务器显示html页面

    nodejs版本:v10.14.2 1.首先准备一个简单的html页面 <!DOCTYPE html> <html lang="en"> <head& ...

  3. nodejs创建服务器

      'use strict'; //加载http模块: const http = require('http'); //创建一个http服务: const server = http.createSe ...

  4. nodejs创建http服务器

    之前有简单介绍nodejs的一篇文章(http://www.cnblogs.com/fangsmile/p/6226044.html) HTTP服务器 Node内建有一个模块,利用它可以很容易创建基本 ...

  5. NodeJs 创建 Web 服务器

    以下是演示一个最基本的 HTTP 服务器架构(使用8081端口),创建 ser.js 文件,代码如下所示: var http = require('http'); var fs = require(' ...

  6. Nodejs创建https服务器(Windows 7)

    为了实验一下WebRTC,搭了个简单的https服务器.说说步骤: 生成OpenSSL证书 使用Nodejs的https模块建立服务器 OpenSSL 证书 我机子Windows 7,安装了Cygwi ...

  7. Nodejs创建HTTPS服务器

    Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...

  8. Nodejs学习笔记(3) 创建服务器:Web 模块(http)与 express 框架

    目录 参考资料 1. 使用 http 模块创建服务器 1.1 实现思路及代码 1.2 HTTP 结构 1.2.1 Request中的重要字段 1.2.2 Response 头信息:文件类型.状态码.连 ...

  9. NodeJs创建一个简单的服务器

    步骤: 1 //模块化引入 2 let http = require ("http"); 3 4 //创建服务器 5 http.createServer(function(requ ...

随机推荐

  1. log4net实现多实例记录

    原文地址:实现多个LOG4NET日志记录器实例 本文内容为摘抄,请查看原文. 对于.NET Framework开发者来说,使用Log4Net进行日志记录是非常方便的,通常只要写好配置文件和简单的编码就 ...

  2. 【转】behave行为树学习使用第一天

    最近在学习使用行为树做AI,决定把学到的贡献出来,抛砖引玉,希望可以认识到更多大牛 -- 首先我们了解下什么是行为树和为什么要使用行为树.   在我们项目中如果需要做一个AI敌人,比如做一个手游 某民 ...

  3. [luogu_P2045]方格取数加强版

    [luogu_P2045]方格取数加强版 试题描述 给出一个 \(n \times n\) 的矩阵,每一格有一个非负整数 \(A_{i,j},(A_{i,j} \le 1000)\) 现在从 \((1 ...

  4. 【01】react 之 hello world

    React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出来以后,发现这套东西 ...

  5. ubuntu运行android studio出错unable to run mksdcard sdk tool

    原因:缺少lib 解决方法: sudo apt-get install lib32z1 lib32ncurses5  lib32stdc++6 完美解决.

  6. utf-8与unicode

    举一个例子:It's 知乎日报 你看到的unicode字符集是这样的编码表: I 0049 t 0074 ' 0027 s 0073 0020 知 77e5 乎 4e4e 日 65e5 报 62a5 ...

  7. input输入框与元素间有间隙

    <div class="container"> <button>1</button> <button>2</button> ...

  8. .NET4.5,MVC4preview,VS2011preview.都来了

    原文发布时间为:2011-11-06 -- 来源于本人的百度文章 [由搬家工具导入] http://weblogs.asp.net/jgalloway/archive/2011/09/14/get-t ...

  9. FCKeditor2.6.4控件及其使用范例

    原文发布时间为:2009-06-14 -- 来源于本人的百度文章 [由搬家工具导入] 已经精简了,很小,不多说了,我的源代码去下载看。 web.config 看看。。。还有bin里面的dll就是控件, ...

  10. 案子前申請 EVB board (Evaluation Board)

    在跑案子前, 需向各 component vendor 申請 EVB board, 其中也包含 mosfet , 以利做實驗, spec 有可能會寫錯 或不清楚, 所以需要使用 EVB board 檢 ...