【nodejs】初识 NodeJS(一)
构建一个基础的 http 服务器
需要引用 http 模块,http 模块是 node.js 的内置模块。
var http = require('http');
http.createServer(function(request, response) {
console.log('Request received...');
response.writeHead({'Content-type': 'text/plain'});
response.write('Hello node.js');
response.end();
}).listen(8888);
console.log('server start...');
保存以上代码为 server.js,打开终端(可以是 cmd)通过 node 运行 server.js,当然前提是先要进入 server.js 所在的目录。
node server
浏览器打开 http://localhost:8888/ 可以看到页面上显示 Hello node.js 。
切换到终端,可以看到输出了一些东西:
server start...
Request received...
Request received...
请注意,当我们在服务器访问网页时,我们的服务器可能会输出两次 Request received...。那是因为大部分服务器都会在你访问 http://localhost:8888/ 时尝试读取 http://localhost:8888/favicon.ico。
进阶 - 模块
编写稍大一点的程序时一般都会将代码模块化。在 nodejs 中,一般将代码合理拆分到不同的 js 文件中,每一个文件就是一个模块,而文件名称就是模块名。
那么如何把 server.js 封装成模块?很简单,看下面代码:
var http = require('http');
function start() {
function onRequest(request, response) {
console.log('request received...');
response.writeHead({
'Content-type': 'text/plain'
});
response.write('Hello node.js');
response.end();
}
http.createServer(onRequest).listen(8888);
console.log('server start...');
}
exports.start = start;
以上代码就是将 server.js 封装为模块了,并且导出 start 方法。
exports 是当前模块的导出对象,用于导出当前模块的公有方法和属性。
引用模块,并调用模块的方法
其实在 server.js 中,就已经学会了如何引用模块以及使用模块的方法:
var http = require('http'); // 引用 http 模块
http.createServer(); // 调用 http 模块的方法
require 函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象(exports)。模块名可使用相对路径(以 ./ 开头),或者是绝对路径(以 / 或 c: 之类的盘符开头)。另外,模块名中的 .js 扩展名可以省略。
新建主文件 index.js 文件(与 server.js 同级),在 index.js 中启动 http 服务器:
var server = require('./server');
server.start();
在终端启动服务:
node index
浏览器打开 http://localhost:8888/ 可以看到页面上显示 Hello node.js,OK,和之前一样。
这样构建一个基础的 http 服务器就完成了。
【nodejs】初识 NodeJS(一)的更多相关文章
- 前端笔记之NodeJS(一)初识NodeJS&内置模块&特点
一.NodeJS简介 NodeJS是开发服务器后台的东西,和PHP.JavaEE.python类似,和传统的浏览器的关注DOM的JS完全不同,将JavaScript触角伸到了服务器端.内核是Chrom ...
- 初识NodeJS
1.JavaScript 模块化规范 浏览器环境 AMD Asynchronous Module Definition RequireJS CMD Common Module Definition S ...
- 初识NodeJS,一个基于GoogleV8引擎的Javascript运行环境
思考 首先我们来思考一个问题:我们都知道几乎所有现代主流浏览器都全面支持了ECMAScript 5.1版标准,而JavaScript的标准是ECMAScript.那么我们就容易认为JavaScript ...
- Nodejs学习笔记(一)——初识Nodejs
前言:目前工作的分内之事相对较为单一,希望可以通过工作之余的时间给自己充充电,只是没有一个学伴或大神带,只能说是摸索着前进.起初准备好好研究下Spring这个框架,下载了源码,结合书籍准备一探究竟,看 ...
- java程序员的NodeJS初识篇
摘要 作为一个一直用java来写后端的程序员用NodeJS来写后台,实在不是很爽.这里记下这两个月的NodeJS学习所遇之坑,与java转NodeJS的同仁共勉.学习时间不长,若有理解错误,望指正. ...
- 【nodejs】初识 NodeJS(二)
上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...
- nodejs初识
提到nodejs总离不开npm,因此首先要学些和了解npm.而对于npm.nodejs的了解都来源于菜鸟教程. nodejs学习地址:http://www.runoob.com/nodejs/node ...
- NodeJs学习一NodeJs初识
一.前言 按照惯例,先扯淡,就因为这货,现在才有了各大公司招聘的全栈工程师,正是因为它,让以前只会写前端的人也能写起后端服务器代码来了.所以呢,你招一个会NodeJs的前端,它都能把后端干了,一个人干 ...
- 【nodejs】初识 NodeJS(四)
上节我们把服务器.路由和请求处理程序结合在一起了,下面就编写一个具体的 web 应用. 上传图片的 web 应用 服务器模块(server.js) var http = require('http') ...
随机推荐
- Android多线程的使用
The speed and efficiency of a long-running, data-intensive operation often improves when you split i ...
- 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)
写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...
- FPGA - 认识FPGA
一.何为FPGA? FPGA,英文全拼:Field-Programmable Gate Array 现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集 ...
- JS 之 script标签
1.script标签 1.js代码的解析(包括下载js文件)会阻塞页面加载 2.当js文件放在头部,页面必须等所有js代码都被下载,解析和执行完成后才开始呈现页面内容(遇到body标签才呈现),对于那 ...
- SourceTree安装教程和破解教程
SourceTree破解版是一款非常实用的编程工具,这是一款专业的Git和Hg客户端,界面简洁,操作简单易上手,是开发者的必备工具,欢迎大家来绿色资源网下载体验!SourceTree是一款免费的Git ...
- Centos服务器端口无法访问
使用GPRS A6 模块进行TCP连接的时候,一度认为A6模块坏掉了 最终只是服务器端口都被防火墙堵住了 使用之前一直用的 service iptables stop 找不到iptables 原来 ...
- 使用html5 Canvas绘制线条(直线、折线等)
使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...
- 【LCA】求和VII @北京OI2018
目录 求和VII PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE 求和VII PROBLEM 时间限制: 2 Sec 内存限制: 256 MB 题目描述 m ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...
- 无法打开运行空间池,服务器管理器winrm插件可能已损坏或丢失
在使用windows2012 的服务器或云主机时,服务器安装不了iis服务. 提示 “无法打开运行空间池,服务器管理器winrm插件可能已损坏或丢失”. 这个问题可能的原因是您的机器未设置虚拟内存,可 ...