Node.js基础知识大汇总

1.下载并安装npm,检测安装是否成功(在命令行输入node -v,看是否会输出对应版本号)

2.写一个hello world 程序。

(1).打开notepad,新建一个.js文件,在里面输入代码:

var f="hello world"

console.log(f)

(2).在命令行切换到代码所在位置,输入node 文件全名 即可解释执行代码

3.体验一下使用node.js读写文件

var fs=require('fs')//require类似c++里面的include,导入读取文件fs核心模块,里面包含读取文件相关的API

fs.readFile("文件路径名字",function(error,data){//readFile函数第一个参数是文件路径名,第二个参数是一个回调函数,里面包含两个参数error,data

  console.log(data.toString())//error是错误对象,读取成功则为null,data是文件内容,读取失败为null,成功则读出为二进制,可以用.toString函数转换

})

fs,writeFile("要写入的文件路径",“写入的内容”,function(error){//function是回调函数,里面包含写入失败的错误信息

  //执行完会调用此函数,可以根据error判断是否成功

})

4.体验一下node.js实现简单的http服务

var http=require('http')

var server=http.createServer()//返回一个Server实例:提供服务包含:发送/接收/处理/反馈请求,注册request事件

server.on('request',function(request,response){//注册request事件,当客户端发送请求过来,就会触发request事件,自动执行回调函数

  //响应请求的代码,function中的request,response和java里的功能类似,request.url 获得请求的路径/index.html等类似

  //,response有一个write方法,可以向客户端发送响应数据,可以多次使用,最后一定要用end结束响应,否则客户端会一直等待

  response.write('11111')

  response.write('22222')

  response.end()

})

server.listen(3000,function(){

  //对方请求过来的回调函数

})//绑定端口号,启动服务器

 5.改良版的HTTP服务

var http=require('http')

var server=http.createServer()

server.on('request',function(request,response){

  var url=request.url//获取的是端口号之后的那部分路径,也就是所有的路径都是以‘/’开头

  if(url==='/'){

  response.end('index jsp')

  }else if(url==='/login'){

  response.end('login jsp')//end函数里面只能传入字符串和二进制,其他类型的需要调用相应的函数进行转换

  }

})

server.listen(3000,function(){

  console.log('connect in ')

})

 6.Node.js中的模块基础知识

require这个方法的作用是用来加载模块

在node中模块大体有这几种:

拥有具体名字的核心模块,如fs,http

用户自定义的文件模块

相对路径必须加./

后缀名可以省略a.js

console.log('a start')

require('./b')

console.log(foo)//报错,无法获得b中的foo

console.log('a end')

b.js

consloe.log('hello world')

var foo='111'

在Node中没有全局作用域,只有模块作用域,内部与外部不能相互访问,默认都是封闭的。要想相互进行通信,可以使用exports对象

exports对象默认是一个空对象,可以将需要提供给外部的对象挂载在exports上

a.js

console.log('a start')

var b=require('./b')

console.log(b.foo)

consloe.log(b.add(1,2))

console.log('a end')

b.js

consloe.log('hello world')

var foo='111'

exports.add=function(a,b){

  return a+b;

}

exports.foo=foo

7.响应内容类型

var http=require('http')

var fs=require('fs')

var server=http.createServer('request',function(req,res){

  var url=req.url

  res.setHeader('Content-Type','text/plain;charset=utf-8')//加上这段后可以解决乱码现象,text/plain是根据显示内容来得出的,若是HTML类型,则为text/html

  //有关内容查询网址(tool.oschina.net

  res.end('hello 中国')//会出现中文乱码,数据默认的格式是utf-8,而浏览器的格式是gbk

  if(url==='/'){

  fs.readFile('./index.html',function(err,data){

  if(err){

    res.setHeader('Content-Type','text/plain;charset=utf-8')

    res.end('访问失败!')}

  else{

    res.setHeader('Content-Type','text/html';charset=utf-8')

    res.end(data)

}}}

})

1.初识Node.js的更多相关文章

  1. 初识node.js(通过npm下载项目依赖的包的过程)

    一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...

  2. Node.js之路【第一篇】初识Node.js

    什么是Node.js 1.Node.js就是运行在服务端的JavaScrip. 2.Node.js是一个基于Chrome JavaScrip运行时简历的一个平台. 3.Node.js是一个非阻塞I/O ...

  3. 初识node.js

    Node.js不是一种语言:不是框架:也不是工具.它是用于运行基于JavaScript应用程序的运行时环境.

  4. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  5. Node.js实战项目学习系列(1) 初识Node.js

    前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js ...

  6. 深入浅出Node.js(一) - 初识Node.js

    1.Node.js将Javascript解决不确定性所使用的事件驱动方式引入了进来,因为JS是一门事件驱动的语言,旨在能够对外界的事件作出响应; 2.Node.js中,所有的有关异步的操作,都在同步操 ...

  7. 【Node.js】初识Node.js

    因组里项目需要,我和另外一名同事要学习Node.js.之前接触过Javascript,都是前台处理html时用到,现在要用Javascript做后端,学习Node.js,用一段时间专心学习一门新技术, ...

  8. 初识Node.js之Node与java作为后台服务器的对比

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  9. 前端(Node.js)(1)-- 初识Node.js

    1.认识 Node.js 诞生.发展.应用现状.生态圈等方面 1.1. 2008年 RyanDahl的目标是创建一个易扩展.适用于现代Web应用通信的服务器平台 1.2.国内外的应用情况 Linked ...

随机推荐

  1. error: No rule to make target '/usr/lib/libOpenNI.so', needed by 'bin/euroc_rectify'。 停止。

    这类问题的出现说明程序在编译时,CMakeLists.txt 文件没有找到OpenNI.so, 即 Pangolin库未安装或破损. 重新安装pangolin库即可.(亲测)

  2. RE模块垃圾回收机制

    今日内容 一.垃圾回收机制 函义:不能被程序访问到的数据,就称之为垃圾 1.引用计数 引用计数是用来记录值的内存地址被记录的次数的  每一次对值地址的引用都可以使该值的引用计数 +1 每一次对值地址的 ...

  3. [精品书单]3D打印机课程设计

    3D打印机整个绘图过程........... 三维图 工程图 编程

  4. Nginx下配置虚拟主机的三种方法

    Nginx下,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的 ...

  5. 防盗链之URL参数签名

    一.概述 传统的 IP 禁用.referer 防盗链.User-Agent 防盗链.地区访问控制等防盗链措施已经无法完全满足用户要求,所以开发出URL参数签名方式来防盗链 二.实现 Token防盗链是 ...

  6. c#串口编程(转)

    在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形.温度等).用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 — ...

  7. 如何用java实现一个p2p种子搜索(1)-概念

    前言 说句大实话,网上介绍怎么用java实现p2p种子的搜索这种资料不是特别多,大部分都是python的,用python的话就会简单很多,它里面有很多简单方便的包,libtorrent等等,当然你用这 ...

  8. 奇yin技巧

    关于一些奇yin技巧 关于删除字符串中的一些字串,并且考虑新的字串 例题:luogu4824 luogu3121 方法:开一个栈记录,发现字串后剪去字串长度. for(int i=1;i<=le ...

  9. eclipse导入本地的svn项目后不能在team提交更新

    由于项目是在本地有svn检出,然后再想通过eclipse 修改然后在eclipse内部提交和更新,但是此时,team里并没有update和commit选项, 又不想重新再检出一次项目,怎么办? 可以在 ...

  10. Linux基础-命令

    命令格式:command  [-options] [paramter] command: 命令名,相应功能英文单词或缩写 options: 选项,对命进行控制,也可省略 paramter:传送给命令的 ...