node.js http初探

在之前的例子中已经写了一个简单的使用http模块的例子

var http = require(‘http‘);  //请求http模块

var func = function(req,res) {

res.writeHead(200,{‘Content-Type‘ : ‘text/plain‘});//相应头200 表示正常返回
res.write("node.js")
res.end();

}//web服务器收到请求时的处理函数

var server = http.createServer(func);//创建web服务器对象

server.listen(3000);
console.log("server is on");

下面我们可以在简单的http服务器的基础上添加简单的路由(不同的访问路径),来响应不同的请求

var http = require(‘http‘);
var url = require(‘url‘);

http.createServer(function(req,res){

var pathname = url.parse(req.url).pathname;

if(pathname === ‘/‘) {
res.writeHead(200,{‘Content-Type‘ : ‘text-plain‘});
res.end(‘home page‘);

} else if(pathname === ‘/redirect‘) {
res.writeHead(301,{
‘Location‘ : ‘http://www.baidu.com‘
});
res.end();
} else {
res.writeHead(404,{
‘Content-type‘ : ‘text/plain‘
});
res.end(‘page not found‘);
}
}).listen(3000,"127.0.0.1");
console.log(‘server is on‘);

我们能处理3种不同的情况,当正常返回,重定向,找不到页面。node.js为我们封装好了这样添加路由的操作,这个只是让我们理解其中的原理

使用express

创建一个基础的express站点

安装express

npm install -g express//-g代表全局安装 全局安装你可以在文件系统任何的位置使用安装的模块 相对于全局安装 本地安装是在项目的一个node_modules的文件夹下安装模块,供该项目使用

通过cmd进入到项目目录 运行 express express_example

进入到express_example目录中 安装express所需要的依赖

项目的目录是这样的

打开app.js文件 在文件的末尾加入下面这句话

表示你可以通过3000端口来访问我们的例子了 (启动服务器)

运行app.js

下面介绍下express自动生成的文件的用途

app.js 是用来启动应用程序的,其中包含应用程序的配置信息

package.json 提供应用程序的信息,包含运行应用程序所需安装的依赖模块(这里涉及到我们到底是在package.json中直接添加依赖模块然后npm install 或者我们手动的一个一个安装模块的区别 推荐直接修改package.json 运行npm install 这样能简化我们的操作,并且其他开发人员也能很好的使用我们的程序)

node_modules 保存package.json中定义并且已经安装的node模块

public

其实查看public的目录就大致可以猜想出它的用途 它能为我们的页面提供资源,样式

routers 这里面定义了路由

view 定义了应用程序的布局(模板,使用模板引擎能使我们通过一个模板展示不同的内容 类似blog每个人的主页,统一管理)

在我们生成的项目中添加路由

路由 : 描述应用程序是否以及如何对特定的超文本传输协议请求进行应答

express使用http动词来定义路由,常用的是

GET 从服务器获取数据

POST 将数据发送给服务器

(还没完成 )

时间: 2024-10-14 06:52:40

node.js http初探的相关文章

Node.js 爬虫初探

前言 在学习慕课网视频和Cnode新手入门接触到爬虫,说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要是把慕课网教学视频提供的案例自己敲了一边,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 知识点 ①:superagent抓去网页工具.我暂时

Node.js入门 系列一(安装,启动,测试)

这里主要介绍基于windows平台上最简单方便的安装方式,启动以及简单测试 概念 Node.js 是构建在Chrome javascript runtime之上的平台,能够很容易的构建快速的,可伸缩性的网络应用程序.Node.js使用事件驱动,非阻塞I/O 模式,这使它能够更轻量,高效且完美的适用于运行在分布式设备之间的数据密集型实时应用程序. 安装 这里主要介绍基于windows平台上最简单方便的安装方式,我们首先直接访问node.js官方网站http://www.nodejs.org/,直接

windows系统 Node.js(安装-启动-测试)

百度进入node.js官网( https://nodejs.org/ ),下载windows平台nodejs环境安装包,找到DOWNLOADS点击,找到Windows Installer 如果为64位电脑可以选择64位版本.点击下载. 安装windows版nodejs,点击下载后的文件安装,然后点next,然后选中同意安装协议,然后点next,然后可以自定义安装目录默认C:\Program Files\nodejs\,然后点next,默认安装全部组件然后点next,然后点击install安装等待

初探node.js -- 环境配置及安装

1.node安装包的下载 http://www.nodejs.org/download/ 这个是官网地址~ 如果你也是Windows系统的话安装Windows Installer (.msi)即可. 2.安装nodeJs 双击安装包一直下一步即可,nodejs还是比较人性化的.他会自动帮你把环境变量配好~ 在安装node的安装包时我在这里报了个错,error 2502,error2503错误原因是你的权限不够(话说win8安装.msi文件时经常这样..). 解决方法是用管理员权限运行此文件即可.

初探node.js

一.定义及优势 定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型. 优势:由于Web场景下的大多数任务(静态资源读取.数据库操作.渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率. 使用场景:Web Server.本地代码构建(用于编译构建前端代码).实用工具开发. 二.成员 CommonJs:模块规范 global:全局对象 process:当前执行的进程 三.CommonJS规则 每个文

Node.js 学习资源

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj

node.js基础模块http、网页分析工具cherrio实现爬虫

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera

node.js高级编程|node.js 视频教程_基于node.js+Express.js+Jade+MongoDB实战开发

基于node.js+Express.js+Jade+MongoDB开发Web即时聊天系统课程讲师:幻星课程分类:前端开发适合人群:初级课时数量:36课时更新程度:完成用到技术:Node.js NPM. Express.NoSQL,MongoDB涉及项目:匿名聊天网站系统node.js视频教程:http://www.ibeifeng.com/goods-462.htmlnode.js 教程适合人群:node.js视频教程要求学员了解JavaScript,node.js入门教程适合希望更深入的学习N

准备要看的node.js相关资料

node.js电子书 了不起的Node.js 深入浅出Node.js node.js入门经典 node.js开发指南 node.js相关优秀博文 官网 Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js模块排行榜,方便找出你想要的模块 nodejs多线程,真正的非阻塞 浅析nodejs的buffer类 利用libuv编写异步多线程的addon实例 Node.js中exports与m