nodejs学习笔记<二>简单的node服务器

在环境搭建好后,就可以开始动手架设(node驱动)一个简单的web服务器。

首先,nodejs还是用js编写。先来看一段node官网上的实例代码。

var http = require(‘http‘);
http.createServer(function(req,res){
    res.writeHead(200,{‘Content-Type‘:‘text/plain‘});
    res.end(‘Holle,nodejs‘);
}).listen(8080,‘127.0.0.1‘);
console.log(‘Server running at http://127.0.0.1:8080/‘);

编码完成后,保存(下文该js文件名:Server.js)。

然后通过cmd命令工具调用Server.js文件。

用cd命令打开Server.js所在的目录(命令:cd 路径)  —>  node命令执行Server.js文件(命令:node Server.js)。

命令行输出日志信息,表示服务器创建成功。

这样node引擎就根据上述代码创建了一个简单的服务器。

测试:打开浏览器,地址栏输入:127.0.0.1:8080,就可以看到页面显示Holle,nodejs

ps:这里注意,有时候命令行输出了日志信息,但在浏览器里输入地址却找不到页面。小菜也遇到了这样的问题,后来尝试换了端口号,问题得到了解决。所以小菜分析,如果端口被占用会找不到端口,node一样会显示日志信息,但服务并没有被创建。

简单分析下这段代码

一>

var http = require(‘http‘);

创建一个http模块。

二>

http.createServer(function(req,res){
res.writeHead(200,{‘Content-Type‘:‘text/plain‘});
res.end(‘Holle,nodejs‘);
})

通过http模块创建一个服务器。

三>

listen(8080,‘127.0.0.1‘);

通过listen监听8080端口的请求。

四>

function(req,res){
res.writeHead(200,{‘Content-Type‘:‘text/plain‘});
res.end(‘Holle,nodejs‘);
}

服务器的回调函数:req请求,res响应。

服务器收到请求后,

通过res.writeHead定义返回内容和状态,这里返回状态码为200,返回内容为text/plain纯文本。

通过res.end定义返回内容。

这样一个简单的服务就搞定了,有响应,有请求(请求暂时没加)。

时间: 2024-10-27 17:05:20

nodejs学习笔记<二>简单的node服务器的相关文章

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例

目录 前言 新建项目.建立数据库以及其它准备工作 新建express + ejs 项目:sampleEjs 创建数据库 修改package.json文件,安装session和mysql模块 样式和JQuery文件 清理项目冗余文件,并添加监听 规划路由,并新建相关文件 实现登录和注册需要的数据访问方法 注册 登录 首页 安全退出 写在之后 前言 上一篇学习了一些构建网站会用到的一些知识点   http://www.cnblogs.com/zhongweiv/p/nodejs_express_we

nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET           数据在url中 2.POST         数据不再url中 get方式:通过地址栏来传输     name=value&name1=value1&               作用:分享 post方式:通过head头传输      数据相对安全 form action="http://www.vaidu

Nodejs学习笔记(二)

Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数. 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回.这样在执行代码时就没有阻塞或等待文件 I/O 操作.这就大大提高了 Node.js 的性能,可以处理大量的并发请求. 阻塞代码实例 创建一个文件 input

nodejs学习笔记二链接mongodb

a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录:npm install mongodb --save 但是发现报gyp ERR! stack Error:Can't find python executable "python"错误,缺少python运行环境. 我晕死,我链接mongodb还需要Python,这不是存心让用户找虐.查到有

nodejs学习笔记二:解析express框架项目文件

上一章介绍了如何去创建一个express框架的工程项目,这章介绍一下express框架下的文件和用法解析,上一张我们创建的工程项目结构图如下: models是不属于原工程项目结构,为了实现数据模型后添加的,而node_modules这个文件夹内存放着项目需要的中间件,public是存放静态文件的文件夹,routes顾名思义就是路由解析文件的所在,views就是ejs模板引擎的视图文件,app.js是项目运行的入口存放着全局大量的配置,package.json是加载第三方包的配置文件.下面来一一解

redis 学习笔记二 (简单动态字符串)

redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移   2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间.  这个数组不占用任何内存,意味着这样的结构节省空间: 该数组的内存地址就和他后面的元素的地址相同,意味着无需初始化,数组名就是后面元素的地

Linux学习笔记&lt;二十六&gt;——DNS服务器

DNS(Domain Name System 域名系统):提供Internet上域名到IP地址的映射 域名:又叫主机名,FQDN(Full Qualified Domain Name完全限定域名) 基本信息: Linux中通常使用bind服务来提供DNS服务器 应用层协议 基于UDP53端口号:用于查询 基于TCP53端口号:用于主从服务器同步数据 基于TCP953端口号:rndc用于远程控制DNS服务器 解析方式: 正向:FQDN <--> IP 反向:IP <-->FQDN 解

NodeJS 学习笔记(二)

url模块 ,包含分析和解析 URL 的工具. var url = require('url'); url.parse(urlStr[, parseQueryString][, slashesDenoteHost])  第一个参数,输入 URL 字符串,返回一个对象. var url = require('url'); url.parse('http://www.tianh.top'); { protocol: 'http:', slashes: true, auth: null, host: