【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') ...
随机推荐
- BZOJ.5093.[Lydsy1711月赛]图的价值(NTT 斯特林数)
题目链接 对于单独一个点,我们枚举它的度数(有多少条边)来计算它的贡献:\[\sum_{i=0}^{n-1}i^kC_{n-1}^i2^{\frac{(n-2)(n-1)}{2}}\] 每个点是一样的 ...
- PIVOT和UNPIVOT使用详解
一.使用PIVOT实现数据表的列转行 建表语句: DROP TABLE STUDENT; CREATE TABLE STUDENT ( 学生编号 BYTE) NULL , 姓名 BYTE) NULL ...
- 英语口语练习系列-C32-建筑-述说时间-暮秋独游曲江
词汇-building(建筑) entertainment Olympic-sized swimming pool tennis court basketball field football pit ...
- 基于AT89C51单片机烟雾传感器
#include <reg51.h> #include <stdio.h> #define uchar unsigned char //宏定义无符号字符型 #define ui ...
- BZOJ5177 : [Jsoi2013]贪心的导游
首先预处理出对于每个模数,所有被模数按结果从大到小排序的结果,那么对于一个询问,如果可以在$O(1)$时间内判断某个数字是否出现,则可以$O(1000)$回答. 考虑对序列进行分治,对于区间$[l,r ...
- BZOJ3457 : Ring
根据Polya定理: \[ans=\frac{\sum_{d|n}\varphi(d)cal(\frac{n}{d})}{n}\] 其中$cal(n)$表示长度为$n$的无限循环后包含$S$的串的数量 ...
- BZOJ2948 : [Poi2001]绿色游戏
维护一个保护集合$S$,表示哪些点$A$可能胜利. 首先将所有绿点加入$S$. $1.$对于一个不在$S$的$A$点,若它存在某个后继在$S$中,则将其加入$S$. $2.$对于一个不在$S$的$B$ ...
- [Vijos1532]区间 (差分约束)
又是一题我不会的模板题…… 讲一下差分约束吧 差分约束 参考博客 如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统.— ...
- 【并查集】Connectivity @ABC049&ARC065/upcexam6492
Connectivity 时间限制: 1 Sec 内存限制: 128 MB 题目描述 There are N cities. There are also K roads and L railway ...
- 【最短路】道路重建 @upcexam5797
时间限制: 1 Sec 内存限制: 128 MB 题目描述 小L的家乡最近遭遇了一场洪水,城市变得面目全非,道路也都被冲毁了.生活还要继续,于是市政府决定重建城市中的道路. 在洪水到来前,城市中共有n ...